Форум 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=152642)

carrotoff 20.03.2011 22:22

Отображение FlashVars в дочернем swf
 
Добрый вечер.

У меня возникла следующая трудность:

Есть основной рабочий swf (назовем его main.swf), так как он прилично весит, пришлось сделать прелодер (preloader.swf), который выполняет загрузку main.swf и добавление его на сцену.

Код AS3:

// preloader.swf
 
var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, SecurityDomain.currentDomain);
 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
loader.load(new URLRequest("my_url", context));

main.swf должен работать c flashvars. Так вот отсюда вопрос: как получить в main.swf flashvars?
Код AS3:

var params:Object = stage.loaderInfo.parameters as Object;

эта строка в main swf вызывает ошибку "TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".".

Соответственно, если не использовать preloader.swf, а просто загружать main.swf, flashvars отлично передаются.

expl 20.03.2011 22:27

Способ 1. Загружать main.swf в loader.swf, с URL в стиле "my_url?flashVar1=23234&flashVar2=value2"
Способ 2. сделать в главном классе main.swf функцию init(flashVars:Object) и передавать туда напрямую
Способ 3. ?

carrotoff 20.03.2011 22:34

первый способ какой-то уж очень некрасивый, но определенно сработает, а по второму способу: я в принципе так и вышел из ситуации, но я подумал: может можно как-то в main.swf получить ссылку на stage preloader.swf

kseniya 20.03.2011 23:15

Stage у всех общий и у main.swf и у preloader.swf
смотрите stage.loaderInfo.parameters после ADDED_TO_STAGE
Код AS3:

addEventListener(Event.ADDED_TO_STAGE, Init);
function Init(event:Event):void{
var params:Object = stage.loaderInfo.parameters as Object;
}


carrotoff 20.03.2011 23:25

Вот именно это я и искал! Знаю, что stage у всех общий, но никак не въезжал почему тогда params = null. Нужно дождаться ADDED_TO_STAGE!
Спасибо, дорогая)


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

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