|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2007
Сообщений: 34
|
Как передать FlashVars флешке, загружаемой с помощью Loader.loadBytes?
Когда загружаешь с помощью Loader.load, их можно передать с URLRequest. Но как это сделать, когда используется Loader.loadBytes?
|
|
|||||
Если вы создатель загружаемой флешки, то просто добавьте ей публичный метод, в котором укажете необходимые параметры. Загрузили флешку, вызвали метод, передали параметры. Как-то так:
package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // Вот здесь вызываем, или можно из другого класса // вызвать, если нужно передать параметры до добавления // на сцену. В этом случае нужно еще поставить какой-нибудь // флаг типа flashVarsInited = true. var info:Object = stage.loaderInfo.parameters; useFlashVars(info.firstParam, info.secondParam, info.thirdParam); } public function useFlashVars(firstParam:int, secondParam:String, thirdParam:Number):void { // do something } } } |
|
|||||
Регистрация: Jan 2007
Сообщений: 34
|
Я, как раз таки, не имею доступа к загружаемой флешке.
|
|
|||||
Флешка которую собираемся эмбедить:
package { import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; public class Embedded extends Sprite { public function Embedded() { super(); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } private function onAddedToStage(e:Event):void { var tf:TextField = new TextField(); addChild(tf); var vars:Object = loaderInfo.parameters; if (vars) { for (var prop:String in vars) { var found:Boolean = true; tf.appendText("vars[" + prop + "] = " + vars[prop] + "\n"); } if (!found) { tf.appendText("vars are empty"); } } else { tf.appendText("vars === null"); } } } } package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.system.LoaderContext; public class TestLoadBytesFlashvars extends Sprite { [Embed(source="Embedded.swf", mimeType="application/octet-stream")] private static const SWF_EMBEDDED:Class; public function TestLoadBytesFlashvars() { addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } private function onAddedToStage(event:Event):void { var loader:Loader = new Loader(); var lc:LoaderContext = new LoaderContext(); lc.parameters = {"prop": "5"}; loader.loadBytes(new SWF_EMBEDDED(), lc); addChild(loader); } } } vars[prop] = 5
__________________
http://www.chessmax.ru |
|
|||||
Регистрация: Jan 2007
Сообщений: 34
|
Спасибо. Невнимательно читал документацию.
|
|
|||||
[+4 08.09.13]
Регистрация: May 2012
Сообщений: 131
|
Спасибо, полезно =)
|
Часовой пояс GMT +4, время: 23:33. |
|
« Предыдущая тема | Следующая тема » |
Теги |
flashvars , loadbytes , loader , loaderInfo , parameters |
|
|