Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在for循环中使用URLLoader.load_Actionscript 3_For Loop_While Loop_Flash Cs5_Urlloader - Fatal编程技术网

Actionscript 3 在for循环中使用URLLoader.load

Actionscript 3 在for循环中使用URLLoader.load,actionscript-3,for-loop,while-loop,flash-cs5,urlloader,Actionscript 3,For Loop,While Loop,Flash Cs5,Urlloader,我正在使用Adobe Flash Professional CS5创建一个网站。 我试图在for循环中使用urloader.load(path)读取文本文件的内容。 路径每次迭代都会更改。 当我从事件处理程序方法跟踪数据时,它只返回最后一个路径的文本文件的内容。 似乎它只是在for完成循环之后才调用事件处理程序方法 代码: 这在for循环中: trace(myData.load(new URLRequest(path))); 然后我得到这个作为我的输出: 未定义 C:\inetpub\wwwr


我正在使用Adobe Flash Professional CS5创建一个网站。
我试图在for循环中使用urloader.load(path)读取文本文件的内容。
路径每次迭代都会更改。
当我从事件处理程序方法跟踪数据时,它只返回最后一个路径的文本文件的内容。
似乎它只是在for完成循环之后才调用事件处理程序方法

代码:

这在for循环中:

trace(myData.load(new URLRequest(path)));
然后我得到这个作为我的输出:

未定义
C:\inetpub\wwwroot\0001\category.txt
未定义
C:\inetpub\wwwroot\0002\category.txt
未定义
C:\inetpub\wwwroot\0003\category.txt
未定义
C:\inetpub\wwwroot\0004\category.txt
未定义
C:\inetpub\wwwroot\0005\category.txt

我还尝试将for循环转换为while循环,结果相同。
为什么会这样?
如果URLLoader.load方法在for循环中不能很好地工作,而我对此无能为力,那么有没有其他方法可以从文件中读取简单文本,比如FileStream之类的?(我不熟悉ActionScript,来自C#)

提前感谢,

Freddy.

本教程和示例代码涵盖了多个文件中的预加载


代码的问题可能是所有文件只有一个URLLoader。您需要为每个文件创建一个新的加载对象。

您没有给加载程序足够的时间来加载文本文件。您的计算机的速度比网络速度快得多,因此可能在加载程序开始加载第一个文件之前,它就被迫加载第二个文件,而不是下一个文件,因此。最后一个是它唯一有时间加载的

在开始下一个加载之前,必须等待每个加载都实际完成。这在循环中不起作用,您需要将名称放入数组中,然后在其中设置索引,初始化到第一个元素,开始加载,然后在onload事件中获取文件,增加索引并加载下一个文本文件,直到完成


是的,您只能对所有文件使用一个加载程序。使用多个加载器的解决方案也会起作用,但这不是因为您只使用多个加载器,而是因为每个加载器都不会相互中断。

谢谢!我创建了一个获取路径的新方法,创建了一个新的URLLoader实例,并从那里加载文本文件。它起作用了!:)这真的很有道理现在我明白了为什么我只得到最后一条路径的内容,尽管每次迭代加载程序都会创建一个新的URLLoader实例。谢谢你把事情说清楚;)我会尽力去做的,我想这会解决我现在面临的另一个问题。。for循环(调用加载程序函数)之后的命令发生在事件完成之前。可能是因为你提到的时间问题。再次感谢!
function onLoaded(e:Event):String
{
    return myData.data.toString();
}
trace(myData.load(new URLRequest(path)));