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

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

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

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
По умолчанию SWFLoader, при повторной загрузке AVM1 теряются переменные запроса

Сразу к сути, вот код во флексовом приложении, оставил только то что показалось важным, этот код создает SWFLoader, и автолоадом подгружает приложение на as2, в переменных запроса идут инициализационные переменные для подгружаемого приложения.
Код AS3:
		private function doLoadComponent( component:ComponentBean, params:Object ) : void
		 {
			component.setIsLoading( true );
 
			loader = new SWFLoader();
 
			loader_target = target;
			target.addChild( loader );
			component.setLevel( loader );
			if(component.getName()!=loaded_name)
			hideComponent( component.getName() );
 
			var users_bean:String = "";
			for each (var i:TableUserBean in users) users_bean += i.serializeForHttpReq();
 
			var request:URLRequest = new URLRequest( component.getPath() + component.getName() +'.swf?v=' + getTimer() +
			"&SFServer="+server+"&SFSPort="+String(port)+"&tempLog="+login+"&tempPas="+pass+"&gameName="+component.getName()+
			"&table_room_id="+table_room_id+"&table_id="+table_id+"&place="+place+"&users="+users_bean);
 
			if ( params ) request.data = params;
			loader.addEventListener( Event.COMPLETE, onComponentLoaded );
			loader.addEventListener( Event.UNLOAD, onUnloadComponent );
			loader.source = request.url;
			}
		}
 
		private function onUnloadComponent( event:* ) : void { trace("UNLOAD"); }
 
		public function exitFromGame():void{ loader.unloadAndStop(true); }
А в чем же проблема? А проблема вот в чем - при первой подгрузке мы получаем наши переменные(все работает), при повторной в той же сессии - нет. При это я так и не смог для себя дать объяснение некоторым фактам, в клиентском приложении пишем:
Код AS3:
static private var temp = 1;
 
private function set_init_variables() 
{
		trace("***Мы здесь были " + temp + " раз");
		temp++;
}
в трейсах ловим:
***Мы здесь были 1 раз //все переменные появились в руте загруженого свф, как им и было сказано
UNLOAD // это анлоад зафиксирован во флексовом приложении
***Мы здесь были 2 раз //переменные в руте не определены, хотя запрос отработал, мы зашли в приложение.
Пока единственным объяснением я для себя вижу пятницу и опухший мозг к конецу недели, если у кого нибудь есть более здравые мысли - поделитесь. Премного благодарен
Да, забыл уточнить exitFromGame() вызывается по нажатии кнопки через локал конекшн в ас2 приложении.


Последний раз редактировалось incorp; 30.10.2009 в 21:34.
Создать новую тему   Часовой пояс GMT +4, время: 13:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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