![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
Ну вот скопировал Ваш код, вставил и в результате все как Вы и говорите, но "A" выводится пустое, а "B" со значением. А мне то нужно чтобы "A" выводило содержимое массива. Вообщем, сам вопрос заключается в следующем: Как сделать, чтобы считав данные из xml и записав их в массив, можно было использовать вне этой функции. Не спорю, может я не понимаю чего-то, но я бы не обращался, если бы понимал
![]() |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
Все ваши дайльнейшие действия должны проиходить только в onLoad или в функциях, которые в нем будут вызваны. А любой код во вне, будет выполняться раньше, чем поступят данные. |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
Я понял.
Но получается что теперь каждый раз когда мне необходимо произвести какие-то действия с данными из xml, я должен вызывать метод onLoad и в нем уже их(действия) описывать? Или же можно сделать, как Вы написали, в другой последовательности? P.S: Прошу прощения за назойливость... |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Нет. Ваша задача, это изменить время и место выполнения основного кода и понять почему именно так, а не иначе.
Вы пишите так: var arr:Array = new Array ();
var xml:XML = new XML ();
xml.ignoreWhite = true;
xml.onLoad = function (success:Boolean) {
if (success) {
for (var i = 0; i < this.childNodes.length; i++) {
var node_info = this.childNodes[i].firstChild;
arr[i] = node_info;
}
trace (arr);
}
};
xml.load ("xml.xml");
//// ниже пошел ваш основной код
import mx.utils.Delegate;
var arr:Array = new Array ();
var xml:XML = new XML ();
xml.ignoreWhite = true;
xml.onLoad = Delegate.create (this, onLoadXML);
xml.load ("xml.xml");
////
function onLoadXML (success:Boolean) {
if (success) {
for (var i = 0; i < xml.childNodes.length; i++) {
var node_info = xml.childNodes[i].firstChild;
arr[i] = node_info;
}
mainCode ();
}
}
function mainCode () {
//// Теперь ваш основной код тут
}
Если вы бегали эстафету, то должны понять. Участник номер 2 ждет участника номер 1 и только потом бежит. А у вас сразу же после старта первго участника, второй тоже начинал бежать, но без палки. Последний раз редактировалось iNils; 16.04.2008 в 15:13. |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
Спасибо Вам большое, это я и хотел узнать.
P.S: У Вас очень хорошо и доходчиво получается объяснять, особенно на примерах из жизни, сразу становится все понятно!! Еще раз выражаю свою благодарность! |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|