Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Передача данных о flashVars между двух .swf файлов (http://www.flasher.ru/forum/showthread.php?t=201127)

Larry 11.06.2013 22:36

Передача данных о flashVars между двух .swf файлов
 
Всем привет!
Проблема выглядит следующим образом. Есть двa .swf файла, один preloader, второй - игра как таковая. Preloader грузит в себя .swf игры, и после визуализирует игру. Нужно передать игре flashVars, полученные preloader'ом.
Проект полностью на Flash Builder'e. Я пробовал использовать вызов метода в preloader'е из класса игры после окончания ее полной загрузки, который принимает эти FlashVars, например:
Код AS3:

//file preloader.as;
_loader.content.setFlashVars(FlashVars.getData());

Процедура, в принципе, стандартная, но. На этапе компиляции Flash Builder ругается, что нет такого метода и это понятно. Как его заткнуть? Пробовал отключить строгий режим компиляции, но все-равно пишет ошибку.

belv 11.06.2013 23:19

Можно в загружаемом swf написать условие
if(this.parent is Loader)
{
тут обратится к переменной прелоадера
}
но чтобы , этот код работал нужно поместить в приемник слушателя события ADDED_TO_STAGE
Такой подход не вызовет ошибки при компиляции и можно обратится к переменной которая сохранена в прилоадере.
Это как вариант , может я и не прав , может есть другие варианты .

caseyryan 12.06.2013 08:09

Не нужно никаких методов создавать.
Прелодер грузит флешку в себя, в подгружаемой флешке слушаем событие Event.ADDED_TO_STAGE.
И как только она добавлена, можно получить флешварсы так:
Код AS3:

var flashVars:Object = stage.loaderInfo.parameters;

объект stage все равно будет единым для прелодера и для подгруженной флешки, так что и флешварсы там будут одни и те же

expl 12.06.2013 11:48

Можно это сделать без заморочек.
Надо просто передать параметры в URL при загрузке: "file_to_load.swf?flashVar0=0&flashVar1=1"
А в загруженной file_to_load.swf они будут доступны как flashVars


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

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