Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.04.2008, 13:32
Nik_M вне форума Посмотреть профиль Отправить личное сообщение для Nik_M Найти все сообщения от Nik_M
  № 11  
Ответить с цитированием
Nik_M

Регистрация: Mar 2008
Сообщений: 30
Ну вот скопировал Ваш код, вставил и в результате все как Вы и говорите, но "A" выводится пустое, а "B" со значением. А мне то нужно чтобы "A" выводило содержимое массива. Вообщем, сам вопрос заключается в следующем: Как сделать, чтобы считав данные из xml и записав их в массив, можно было использовать вне этой функции. Не спорю, может я не понимаю чего-то, но я бы не обращался, если бы понимал

Старый 16.04.2008, 13:39
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от Nik_M
А мне то нужно чтобы "A" выводило содержимое массива. Как сделать, чтобы считав данные из xml и записав их в массив, можно было использовать вне этой функции.
Именно в той последовательности в какой вы хотите - не выйдет. Сын не может родиться раньше отца.
Все ваши дайльнейшие действия должны проиходить только в onLoad или в функциях, которые в нем будут вызваны. А любой код во вне, будет выполняться раньше, чем поступят данные.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.04.2008, 14:22
Nik_M вне форума Посмотреть профиль Отправить личное сообщение для Nik_M Найти все сообщения от Nik_M
  № 13  
Ответить с цитированием
Nik_M

Регистрация: Mar 2008
Сообщений: 30
Я понял.
Но получается что теперь каждый раз когда мне необходимо произвести какие-то действия с данными из xml, я должен вызывать метод onLoad и в нем уже их(действия) описывать? Или же можно сделать, как Вы написали, в другой последовательности?
P.S: Прошу прощения за назойливость...

Старый 16.04.2008, 14:34
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 14  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: 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 () {
	//// Теперь ваш основной код тут
}
Таким образом, мы переместили код из кадра в функцию (изменили место) и эта функция срабатывает после onLoad и весь код соотвественно тоже (изменили время), а не сразу.

Если вы бегали эстафету, то должны понять. Участник номер 2 ждет участника номер 1 и только потом бежит. А у вас сразу же после старта первго участника, второй тоже начинал бежать, но без палки.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 16.04.2008 в 15:13.
Старый 16.04.2008, 15:08
Nik_M вне форума Посмотреть профиль Отправить личное сообщение для Nik_M Найти все сообщения от Nik_M
  № 15  
Ответить с цитированием
Nik_M

Регистрация: Mar 2008
Сообщений: 30
Спасибо Вам большое, это я и хотел узнать.
P.S: У Вас очень хорошо и доходчиво получается объяснять, особенно на примерах из жизни, сразу становится все понятно!!
Еще раз выражаю свою благодарность!

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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