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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.10.2010, 16:02
SONce вне форума Посмотреть профиль Отправить личное сообщение для SONce Найти все сообщения от SONce
  № 1  
Ответить с цитированием
SONce
[+1.3 20.12.10]

Регистрация: Nov 2009
Сообщений: 124
По умолчанию Проблема с лоадером в классе

Имеем класс:

Код AS3:
package 
{
	import flash.events.*;
	import flash.xml.*;
	import flash.display.Loader;
	import flash.net.URLRequest;
 
	public class RTParse
	{
		public var rXML;
		public function GetLinkFromID(id:String)
		{
			var loader:Loader = new Loader();
			loader.addEventListener(Event.COMPLETE, XMLLoad);
			loader.load(new URLRequest("блаблабла?id="+id));
			trace('x:'+rXML);
 
		}
 
		private function XMLLoad(event:Event):void{
			rXML=XML(event.target.data);
			trace(rXML);
		}
	}
}

проблема вот в чем.

Из флешки я вызываю GetLinkFromID но оно мне ссылку не вернет. так как лоадер обрабатывается в XMLLoad.

Как заставить флеш подождать чтоли, пока лоадер обработается и продолжить работу с rXML в функции GetLinkFromID?

Старый 22.10.2010, 16:11
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 2  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Код AS3:
loader.contentLoaderInfo.addEventListener(Event.INIT, XMLLoad);

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
AlexDesinger, это зачем?

SONce, в метод GetLinkFromID передавайте метод ожидающий xml.

Код AS3:
package 
{
	import flash.events.*;
	import flash.xml.*;
	import flash.display.Loader;
	import flash.net.URLRequest;
 
	public class RTParse
	{
		public var rXML;
		private var giveMeXML:Function;
 
		public function GetLinkFromID(id:String, giveMeXML:Function)
		{
			this.giveMeXML = giveMeXML;
 
			var loader:Loader = new Loader();
			loader.addEventListener(Event.COMPLETE, XMLLoad);
			loader.load(new URLRequest("блаблабла?id="+id));
			trace('x:'+rXML);
 
		}
 
		private function XMLLoad(event:Event):void{
			rXML=XML(event.target.data);
			trace(rXML);
 
			giveMeXML(rXML);
		}
	}
}
И да, для загрузки xml используйте URLLoader, а не Loader. Разницу читайте в хелпе

Старый 22.10.2010, 16:23
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 4  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Цитата:
AlexDesinger, это зачем?
Код AS3:
loader.addEventListener(Event.COMPLETE, XMLLoad);
а как бы это работать будет разве?

Старый 22.10.2010, 16:34
SONce вне форума Посмотреть профиль Отправить личное сообщение для SONce Найти все сообщения от SONce
  № 5  
Ответить с цитированием
SONce
[+1.3 20.12.10]

Регистрация: Nov 2009
Сообщений: 124
Цитата:
Сообщение от AlexDesinger Посмотреть сообщение
Код AS3:
loader.addEventListener(Event.COMPLETE, XMLLoad);
а как бы это работать будет разве?
да, работать это будет

Bgg, несовсем понял вашу схему.

Где в итоге окажется полученая инфа?

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от SONce Посмотреть сообщение
Bgg, несовсем понял вашу схему.

Где в итоге окажется полученая инфа?
А вам где нужно то?)
Флешь не "ждет" никого!

Старый 22.10.2010, 16:37
SONce вне форума Посмотреть профиль Отправить личное сообщение для SONce Найти все сообщения от SONce
  № 7  
Ответить с цитированием
SONce
[+1.3 20.12.10]

Регистрация: Nov 2009
Сообщений: 124
да это понятно что не ждет

обьясню проще, мне нужно чтобы GetLinkFromID, ретурнил то что получает лоадер.

Старый 22.10.2010, 16:45
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 8  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
SONce асинхронные запросы наружу ничего не ретурнят, подпишитесь на событие и ждите результата.
Вам предложили же одно решение, как вариант можете еще свой ивент диспатчить и наверху подписываться, но тут мне кажеться проще вышепредложенный вариант.

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Я понял что вам нужно, но так нельзя. Придется ждать события об окончании загрузки как минимум, а уж кто/что ждать будет - решать вам. В моем примере ждет функция giveMeXML.

Старый 22.10.2010, 17:08
SONce вне форума Посмотреть профиль Отправить личное сообщение для SONce Найти все сообщения от SONce
  № 10  
Ответить с цитированием
SONce
[+1.3 20.12.10]

Регистрация: Nov 2009
Сообщений: 124
Цитата:
Сообщение от nOobCrafter Посмотреть сообщение
SONce асинхронные запросы наружу ничего не ретурнят, подпишитесь на событие и ждите результата.
Вам предложили же одно решение, как вариант можете еще свой ивент диспатчить и наверху подписываться, но тут мне кажеться проще вышепредложенный вариант.
я просто непонимаю как это работает(верхний вариант), как я понял, что после загрузки, xml передается в функцию giveMeXML которая находится в самой флешке, так?

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

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

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


 


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


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