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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.07.2008, 00:04
Kamchatka вне форума Посмотреть профиль Отправить личное сообщение для Kamchatka Найти все сообщения от Kamchatka
  № 1  
Ответить с цитированием
Kamchatka

Регистрация: May 2008
Адрес: Keytown
Сообщений: 94
Отправить сообщение для Kamchatka с помощью ICQ
Question Как избегать "недогрузки" xml

Здравствуйте, уважаемые. Возможно вопрос несколько странный, но:

например, есть некий класс, в котором загружается и парсируется xml файл, также есть класс в котором создаётся экземпляр первого. И если сразу после создания экземпляра попытаться прочесть какие-нибудь значения переменных, зависящих от xml файла - естесственно они будут NaN.

Я обхожу это через событие ENTER_FRAME где тупо проверяю всё ли загружено, но мне кажеться, это как-то не верно.
Вопрос собственно такой, а как вы подгружаете xml что бы не напороться на "недогруженные значения"(если xml файлов несолько и они по разному организованны, то есть в один файл их сливать не хочется)?
__________________
+

Старый 30.07.2008, 00:16
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 2  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
я гружу xml так:
Код:
private var _dataLoader:URLLoader;
public function MyTree(DataLink:String):void
{
	_dataLoader = new URLLoader();
	_dataLoader.addEventListener(Event.COMPLETE, completeDataLoaderHandler);
	_dataLoader.load(new URLRequest(DataLink));
}
private function completeDataLoaderHandler(event:Event):void
{
	var xmlList:XMLList = new XMLList(event.target.data);
	//тут пишем, что надо
}
__________________
я могу стать всем, если только захочу

Старый 30.07.2008, 00:20
CEBEP вне форума Посмотреть профиль Отправить личное сообщение для CEBEP Посетить домашнюю страницу CEBEP Найти все сообщения от CEBEP
  № 3  
Ответить с цитированием
CEBEP
 
Аватар для CEBEP

Регистрация: Nov 2006
Сообщений: 688
Отправить сообщение для CEBEP с помощью ICQ Отправить сообщение для CEBEP с помощью Skype™
слушаю на Event.COMPLETE

Старый 30.07.2008, 00:26
Kamchatka вне форума Посмотреть профиль Отправить личное сообщение для Kamchatka Найти все сообщения от Kamchatka
  № 4  
Ответить с цитированием
Kamchatka

Регистрация: May 2008
Адрес: Keytown
Сообщений: 94
Отправить сообщение для Kamchatka с помощью ICQ
ну например, если то что во втором посте - это xmlMenu, то:

Код:
var mainMenu:xmlMenu = new xmlMenu();
trace(mainMenu.len);
выдаст NaN, если в самом классе не была строго задана len, а при этом вешать
Код:
mainMenu.addListener(Event.COMPLETE, someHandler);
не помогает.
__________________
+

Старый 30.07.2008, 00:36
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 5  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
такой подход те нужен... ну тогда те надо генерить свое событие
eventDispatch();

Старый 30.07.2008, 00:43
Kamchatka вне форума Посмотреть профиль Отправить личное сообщение для Kamchatka Найти все сообщения от Kamchatka
  № 6  
Ответить с цитированием
Kamchatka

Регистрация: May 2008
Адрес: Keytown
Сообщений: 94
Отправить сообщение для Kamchatka с помощью ICQ
Расскажешь подробнее?
__________________
+

Старый 30.07.2008, 00:43
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 7  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
Сообщение от Kamchatka Посмотреть сообщение
ну например, если то что во втором посте - это xmlMenu, то:

Код:
var mainMenu:xmlMenu = new xmlMenu();
trace(mainMenu.len);
выдаст NaN, если в самом классе не была строго задана len, а при этом вешать
Код:
mainMenu.addListener(Event.COMPLETE, someHandler);
не помогает.
ну это естественно. лоадер, как я понимаю работает в ассинхронном режиме. то есть при выполнении кода в конструкторе, у тебя еще не подгрузилась твоя xml.
когда она подгрузится, вызывается completeDataLoaderHandler, во туда и пихаешь необходимый код.

ps: если я правильно понял, переменная len берется из xml?
__________________
я могу стать всем, если только захочу

Старый 30.07.2008, 00:47
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 8  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Цитата:
Сообщение от Kamchatka Посмотреть сообщение
Расскажешь подробнее?
суть в следующем, в ту функцию которая у тя висит слушателем на загрузку хмл пишешь нечто вроде
eventDispatch(new Event("I_DID_IT"));

а с внешней стороны к экземпляру того класса который там что то грузит в свою очередь подвешиваешь нечто вроде этого
экз_твоего_класса.addEventListener("I_DID_IT",someFunction);
ну а дальше понимаешь что делать...

Старый 30.07.2008, 00:49
Kamchatka вне форума Посмотреть профиль Отправить личное сообщение для Kamchatka Найти все сообщения от Kamchatka
  № 9  
Ответить с цитированием
Kamchatka

Регистрация: May 2008
Адрес: Keytown
Сообщений: 94
Отправить сообщение для Kamchatka с помощью ICQ
воооот, а дело всё в том, что некоторые вещи зависят от двух xml файлов и более, т.е. мне нужно пропарсировать первый, затем второй, и только потом начать некие действия.
Т. е. пихать код в функцию-парсер несколько не верно. чёрт знает какой из xml загрузится первым, а делать так, как описано у меня выше.....ну меня это смущает))) дай думаю спрошу кто как делает)))
__________________
+

Старый 30.07.2008, 01:01
Kamchatka вне форума Посмотреть профиль Отправить личное сообщение для Kamchatka Найти все сообщения от Kamchatka
  № 10  
Ответить с цитированием
Kamchatka

Регистрация: May 2008
Адрес: Keytown
Сообщений: 94
Отправить сообщение для Kamchatka с помощью ICQ
ramshteks - классно, спасибо))
__________________
+

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

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

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


 


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


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