![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2013
Сообщений: 29
|
В данный момент берутся все "анекдоты" и добавляются в 0-ую ячейку массива.
Подскажите плиз, как сделать так, что бы каждый анекдот был в новой ячейки массива. или хотя бы в какую сторону копать? нужно в ручную парсить или существует какая-нибудь функция\событие? import flash.net.*; import flash.events.*; var myArray:Array = []; // создаем пустой массив var loader:URLLoader = new URLLoader(); loader.load(new URLRequest("C:\q.txt")); loader.addEventListener(Event.COMPLETE,onComplete); function onComplete(event:Event):void { var myxml:XML = XML(event.target.data); //trace(myxml.anekdot.text()); myArray.push(myxml.anekdot.text()); //trace(myArray.length); trace(myArray); } Последний раз редактировалось infbyte; 23.07.2013 в 19:51. |
|
|||||
|
Регистрация: Jul 2013
Сообщений: 29
|
подниму старую темку...
Подскажите плиз. А почему кстати массив myArray не виден вне функции onComplete? как сделать что бы можно было его использовать из других участков кода? например вот так: |
|
|||||
|
В вашем примере массив myArray как раз таки виден вне метода onComplete.
------------------------------ Так не сработает. Тут вы даже не обращаетесь к массиву. Доступ к элементам массива осуществляется через квадратные скобки в которых указывается индекс (номер элемента от 0 до myArray.length-1). Например для первого элемента |
|
|||||
|
Регистрация: Jul 2013
Сообщений: 29
|
Не правильно написал вчера немного код.
Вот так сейчас у меня: import flash.net.*; import flash.events.*; var myArray:Array = []; var loader:URLLoader = new URLLoader(); loader.load(new URLRequest("G:\1.txt")); loader.addEventListener(Event.COMPLETE,onComplete); function onComplete(event:Event):void { var myxml:XML = XML(event.target.data); for each (var an:String in myxml.an) { myArray.push(an); } } trace(myArray[0]); Но если вывод сделать внутри функции onComplete, то выводит массив. не могу понять почему или у меня что-то уже с самим IDE... Последний раз редактировалось infbyte; 14.07.2014 в 18:20. |
|
|||||
|
Регистрация: Mar 2007
Сообщений: 319
|
потому onComplete вызовется позже trace(myArray[0]). Флешовые события загрузки, декодирования, таймера и прочего происходят в следующем кадре или позже.
|
|
|||||
|
Регистрация: Jul 2013
Сообщений: 29
|
У меня есть кадр, где пользователь выбирает тип игры.
В зависимости от типа игры, подгружаются различные файлы в массив. после этого сразу же переходит на следующий кадр с игровым столом. В кадре с игровым столом(12 кадр) нужно узнать длину массива. Но по какой-то причине, файл не успевает скачиватьтся и length массива возвращает 0 Подскажите плиз плиз, как сделать так, что бы на следующий кадр можно было перейти только после загрузки файла,а не моментально. Вот код кадра с выбором игры: stop(); var type_game:int; import flash.net.*; import flash.events.*; var myArray:Array = []; // создаем пустой массив Security.loadPolicyFile("http://ya.ru/crossdomain.xml"); var loader:URLLoader = new URLLoader(); //loader.load(new URLRequest("http://ya.ru/"+type_game+".txt"));//переместил loader.addEventListener(Event.COMPLETE,onComplete); function onComplete(event:Event):void { var myxml:XML = XML(event.target.data); for each (var anekdot:String in myxml.anekdot) { myArray.push(anekdot); } } o1.addEventListener(MouseEvent.CLICK, qwe2); function qwe2(event:MouseEvent):void{ type_game = 1;/////////////////@ loader.load(new URLRequest("http://ya.ru/"+type_game+".txt")); gotoAndStop(12); } ////////////////////////////////////////////// o2.addEventListener(MouseEvent.CLICK, qwe4); function qwe4(event:MouseEvent):void{ type_game = 2;////////////////@ loader.load(new URLRequest("http://ya.ru/"+type_game+".txt")); gotoAndStop(12); } Если выполнять этот код не сразу, а например через кнопку , секунд через 5, то возвращает все как нужно. т.е. склоняюсь к тому что не успевает выкачаться |
|
|||||
|
Регистрация: Mar 2007
Сообщений: 319
|
gotoAndStop(12) в onComplete. ещё раз повторяю нужно дожидаться загрузки и потом выполнять то что нужно
|
|
|||||
|
Регистрация: Jul 2013
Сообщений: 29
|
теперь понял.
просто думал что просто вызывается позже, а оказывается вызывается позже и работает до тех пор пока не скачает. спасибо) |
|
|||||
|
Регистрация: Feb 2014
Сообщений: 192
|
вместо XML использовать String и метод split
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|