Флешка которую собираемся эмбедить:
Код AS3:
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");
}
}
}
}
Флешка которая передает параметры:
Код AS3:
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