我正在使用 Adobe Flash Professional CS5 创建一个网站。
我正在尝试在 for 循环中使用 URLLoader.load(path) 读取文本文件的内容。
路径每次迭代都会改变。
当我从事件处理程序方法跟踪数据时,它只返回最后一个路径的文本文件的内容。
似乎它仅在 for 完成循环后才调用事件处理程序方法。
代码:
var myData:URLLoader = new URLLoader();
myData.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(e:Event):void
{
trace(myData.data);
}
for (var o = 0; o < filesArray.length; o++)
{
for (var p = 0; p < filesArray[o].length; p++)
{
if (filesArray[o][p] == "category.txt")
{
path = "C:\\inetpub\\wwwroot\\" + filesArray[o][0] + "\\" + filesArray[o][p];
myData.load(new URLRequest(path));
trace(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
珠宝
正如我所说,“Jewlery”是“C:\inetpub\wwwroot\0005\category.txt”的内容。
我试图更改“onLoaded”方法以返回这样的字符串:
function onLoaded(e:Event):String
{
return myData.data.toString();
}
这在 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#)
在此先感谢,
弗雷迪。