Форум 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)
-   -   Проблемы с масивом (http://www.flasher.ru/forum/showthread.php?t=71565)

intro 08.11.2005 18:06

Проблемы с масивом
 
У меня возникла проблема с массивом...
//Заполнение массива данными из XML файла
var my_xml:XML = new XML();
var xml_array:Array = new Array();
var i:Number;
var j:Number;
my_xml.ignoreWhite = true;
//my_xml.load("c:/XML/xml2.xml");
my_xml.load("http://localhost/xml2.php");
my_xml.onLoad = function() {
for (j=1; j<4; j++) {
for (i=1; i<4; i++) {
xml_array[j, i] = {id:my_xml.childNodes[0].childNodes[j-1].childNodes[i-1].childNodes[0].nodeValue};
//trace(my_xml.childNodes[0].childNodes[j].childNodes[i].childNodes[0].nodeValue);
trace(xml_array[j, i].id);
}
}
}
//Отображение фигуры в зависимости от значения в массиве
if (xml_array[1, 1].id == 0) {
my_color = new Color(this.podstan_1);
my_color.setRGB(0xFF0000);
} else {
my_color = new Color(this.podstan_1);
my_color.setRGB(0x00FF99);
}
trace (xml_array[1,2].id);

Так вот после выхода из функции onLoad, массива не существует... Надо ли массив объявлять как глобальный? Если да, то как?

wwwita 08.11.2005 18:14

сделай его в руте и заполняй его из onLoad как
_root.xml_array[j, i]

все переменные, что заданы в корне кадра (не в каком нибудь мувике) - считаются глобальными.
глобальные переменные существуют в течении одного кадра, если хочешь чтобы они были везде - растяни кадр на столько на сколько тебе нужно. * так было в flash mx, может в 7-ке и 8-ке что-нибудь могло измениться.

wwwita 08.11.2005 18:16

да, изменилось... в 8-ке если один раз задать в корне переменную она видна из любого кадра :)

iNils 08.11.2005 18:23

Цитата:

Сообщение от wwwita
все переменные, что заданы в корне кадра (не в каком нибудь мувике) - считаются глобальными.

они считаеются рутовыми, а не глобальными
Цитата:

Сообщение от wwwita
глобальные переменные существуют в течении одного кадра, если хочешь чтобы они были везде - растяни кадр на столько на сколько тебе нужно. * так было в flash mx, может в 7-ке и 8-ке что-нибудь могло измениться.

они существуют в любом кадре и не надо ничего растягивать, создаются они через _global

wwwita 08.11.2005 18:29

Чувак, факт есть факт, а у кого какие понятия - зависит от распальцовки ;)

iNils 08.11.2005 18:31

Цитата:

Сообщение от wwwita
Чувак, факт есть факт, а у кого какие понятия - зависит от распальцовки ;)

Далеко ты с такими знаниями пойдешь :)

wwwita 08.11.2005 18:36

уже ушел.. не догонишь

7thsky™ 08.11.2005 18:46

iNils - а ты посмотри массив то какой крутой :)

Код:

trace(xml_array[j, i].id);
почитать по теме

iNils 08.11.2005 18:52

Цитата:

Сообщение от 7thsky™
iNils - а ты посмотри массив то какой крутой :)

Код:

trace(xml_array[j, i].id);
почитать по теме

А слона то я и не приметил :)
обращение к двухмерному массиву осуществляется так
xml_array[j][i]

intro 08.11.2005 19:01

Странно, но почему-то у меня на заполнение массива такого формата xml_array[j][i] выдает ошибку, а вот формат xml_array[j, i] работает нормально без всяких проблем. И заполняется и выводится.
Плиз... Прошу... Ответьте конкретней, что мне надо сделать, что бы массив читалься вне функции? Заранее благодарен.


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

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