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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 20.09.2011, 22:13
Stary вне форума Посмотреть профиль Отправить личное сообщение для Stary Посетить домашнюю страницу Stary Найти все сообщения от Stary
  № 1  
Ответить с цитированием
Stary
 
Аватар для Stary

Регистрация: Jul 2001
Адрес: Харьков
Сообщений: 102
Отправить сообщение для Stary с помощью ICQ
По умолчанию В повторно загружаемом SWF инициализируются старые Flashvars

Объясняю ситуацию:
  1. Имеется приложение AS3, которое загружает в себя swf-файл загрузчик на AS2, который извлекает параметры из запроса и использует их для загрузки в себя некой AS2-игры. Игра написана давно, и ее требуется поддерживать. Реализован интерфейс коммуникации с основным приложением через ExternalInterface.
  2. Задача стоит этот лоадер загружать и выгружать, а потом - загружать снова - чтобы подтянуть другую игру.
  3. Чтобы он мог подтягивать разные игры, ему передаются параметры - гетовской строкой, чтобы потом он читал свои флешвары.
  4. Он читает флешвары исправно в первый раз таким образом: _root["myVar1"], _root["myVar2"]... После чего загружает нужную игру и все в порядке.
  5. Потом пользователь захочет закрыть одну игру и открыть вторую. При этом я как могу чищу и уничтожаю экземпляр класса, который служил для загрузки и отображения первой игры, создаю новый экземпляр и по той же схеме гружу в него ТОТ ЖЕ файл-лоадер, но с другими параметрами, ожидая что он их подхватит и будет использовать.
  6. В логе Charles я вижу, что запрос прошел правильный - с нужной GET-строкой
  7. Но когда я заглядываю в AS2 лоадер, вижу, что нужных параметров он не получил (очевидно, он вместо заргузки взял где-то закешированный уже проинициализированный объект).
Дальше два варианта:
  • Если при уничтожении предыдущего экземпляра-контейнера, я сделал unload ИЛИ unloadAndStop старому Loader-у, то новый AS2 файл НЕ ВИДИТ Flashvars вообще
  • Если этого не делать, то он видит старые Flashvars
Никакими способами это преодолеть не удалось. Пробовал:
  • Хак по принудительному вызову Garbage Collector
  • Передачу параметров через URLrequest.data (не находит)
  • Удалял из загрузчика все лишнее, все листенеры и блокировал дальнейшую загрузку игры
Пока все тщетно. Не хочется пользоваться LocalConnection и ExternalInterface. Есть ли способ этого избежать?

Спасибо.


Последний раз редактировалось Stary; 20.09.2011 в 22:16.
Создать новую тему   Часовой пояс GMT +4, время: 20:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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