PDA

Просмотр полной версии : Передача данных о flashVars между двух .swf файлов


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

//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.
И как только она добавлена, можно получить флешварсы так:

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