Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   XML и Array (http://www.flasher.ru/forum/showthread.php?t=88379)

Videneev 22.11.2006 18:03

XML и Array
 
Есть код:

Код:

roomArray = new Array();
textArray = new Array();
roomXML = new XML();
roomXML.ignoreWhite = true;
roomXML.load("32.xml");
roomXML.onLoad = function(loaded){
        if(loaded){
                rooms = this.firstChild;
                skolkoRooms = rooms.childNodes.length;
                for (i=0; i<skolkoRooms; i++ ){
                        roomArray.push(rooms.childNodes[i].attributes.id);
                        textArray.push(rooms.childNodes[i].attributes.txt);

trace("ID: "+roomArray[i]+" TXT: "+textArray[i]);      // массив есть и все показывает

                }
        }
}

trace("ID: "+roomArray[0]);
trace("TXT: "+textArray[0]);
// массива нет и показывает undefined

в функии массив собран и все показывает, а за функцией говорит что undefined

вот XML:
Код:

<?xml version="1.0" ?>
<rooms>
<room id="1" txt="Магазин №1"></room>
<room id="2" txt="Магазин №2"></room>
<room id="3" txt="Магазин №3"></room>
<room id="4" txt="Магазин №4"></room>
<room id="5" txt="Магазин №5"></room>
</rooms>

Кто подскажет где собака порылась?

etc 22.11.2006 18:09

Ты не дождался загрузки, поставь трейс внутри onLoad

Videneev 22.11.2006 18:19

Цитата:

Сообщение от __etc
Ты не дождался загрузки, поставь трейс внутри onLoad

трейс внутри стоит и работает, но мне нужен этот массив за onLoad'ом :(

мне нужно вывести этот массив в Dynamic text

etc 22.11.2006 18:22

Вне метода нельзя, потому что это метод вызывается позже — загрузка асинхронна с выполнением кода.

Videneev 22.11.2006 18:24

млин. :(

и что никак?

etc 22.11.2006 18:29

Никак. А зачем? Все равно до вызова onLoad массив не будет доступен.

Videneev 22.11.2006 20:22

мне нужно загрузить данные в массив из xml, что б потом этот массив использовать.

может подскажешь как?

etc 22.11.2006 20:30

Так у тебя уже всё написано в onLoad!

Videneev 22.11.2006 20:47

:( но если я в сцену вставляю Dynamictext и пишу в var roomArray[0] - то ничего нет :-(
а мне именно и нужно загрузить массив, а потом его вывести в сцене...

Kikasso 22.11.2006 21:41

вместо
Код:

trace("ID: "+roomArray[i]+" TXT: "+textArray[i]);
напиши
Код:

<id-текстового-поля>.text += "ID: "+roomArray[i]+" TXT: "+textArray[i];
id поля пишется слева в свойствах


Часовой пояс GMT +4, время: 16:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.