Я создаю веб-сайт с помощью Adobe Flash Professional CS5.
Я пытаюсь прочитать содержимое текстового файла с помощью URLLoader.load (путь) внутри цикла for.
Путь меняется на каждой итерации.
Когда я отслеживаю данные из метода обработчика событий, он возвращает только содержимое текстового файла последнего пути.
Похоже, что он вызывает метод-обработчик события только после того, как цикл 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 #)
Заранее спасибо,
Freddy.