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

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

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

Регистрация: Mar 2011
Сообщений: 5
Question URLLoader работает только в одном экземпляре класса

Приветствую

я написал класс для взаимодействия с php-скриптом, который обрабатывает запросы к mysql. запросы отправляю через URLLoader, вот обрезанный пример класса:

Код AS3:
public class SQLWrapper extends MovieClip
{
	private var serverUrl:String = "http://192.168.177.128/";
	private var request:URLRequest;
	private var variables:URLVariables;
	private var loader:URLLoader;
	private var id:Number;	
	public  var object:Object;
	public 	static const DATA_LOADED:String = "DATA_LOADED";
 
	public function SQLWrapper(_id:Number, _object:Object = null) 	{
		object = _object;
		id = _id;
	}
 
	private function sndRequest():void {
		variables = new URLVariables();
		variables.id = id;
 
		request = new URLRequest();
		request.url = serverUrl;
		request.method = URLRequestMethod.GET;
		request.data = variables
 
		loader = new URLLoader();
		loader.addEventListener(Event.COMPLETE, rcv_hello);
		loader.load(request);	
	}
 
	private function rcvResponse(e:Event = null):void {
		loader.removeEventListener(Event.COMPLETE, dataLoaded);
 
		xml = XML(loader.data);
		sid = xml.children()[0].sid;
 
		trace(sid);
		dispatchEvent(new Event(SQLWrapper.DATA_LOADED));	
	}
}
все работает ок, но когда я создаю 2 экземпляра класса и вызываю в каждом функцию sndRequest(), запрос посылается только один, а событие лоадера COMPLETE срабатывает в каждом классе, и выводится два одинаковых sid.
вот пример создания экземпляров:

Код AS3:
public class Main
{
	public function Main():void
	{		
		var market:Market = new Market();
		stage.addChild(market);
 
		getMarketItems(market);
	}
 
	private function getMarketItems(market:Object):void {
		var sql_a:SQLWrapper = new SQLWrapper(1, market);
		sql_a.addEventListener(SQLWrapper.RESPONSE, marketResponse);
		sql_a.sendRequest();
	}
 
	private function marketResponse(e:Event = null):void {
		var market:Market = Market(e.target.object);
		var item:MarketItem = new MarketItem();
 
		market.addItem(item);
		getItemStats(item);
	}
 
	private function getItemStats(item:Object):void {
		var sql_b:SQLWrapper = new SQLWrapper(2, item);
		sql_b.addEventListener(SQLWrapper.RESPONSE, itemResponse);
		sql_b.sendRequest();
	}
 
	private function itemResponse(e:Event = null):void {
		var item:MarketItem = MarketItem(e.target.xml.sid);
		item.addStat(sid);
	}
}
во флеше шарю хреново и не совсем понимаю почему это происходит. подскажите что не так?

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

Теги
urlloader

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

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


 


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


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