Android上的AS3 Air - 将SWF加载为自己的Main()

时间:2011-11-07 23:03:35

标签: android actionscript-3 air

我正在使用包装器应用程序下载远程SWF并将其保存到Xoom平板电脑。下载和保存工作正常,但使用类似

的东西
var file:File = File.applicationStorageDirectory.resolvePath("app.swf");
var loader:Loader = new Loader();
loader.load(new URLRequest(file.url)/*,context needed?*/);
_main.addChild(loader);

在加载的swf中使用目标进行螺钉,以便在我加载的swf中,如果我尝试从“Main”调用“stage”,则为null。我认为既然加载的SWF有自己的沙盒它会加载和运行就像我自己安装它一样,似乎并非如此。如果这是一个桌面应用程序我可以使用NativeWindow但它尚未支持移动设备。有没有任何已知的选项,我可以在自己的沙箱中加载和运行它,路径和根完好无损?可能是一个命令它将它作为一个单独的swf从我的包装swf启动?

1 个答案:

答案 0 :(得分:1)

我遇到了更多问题,但最终找到了正确的方法,你无法访问“文件”,但这很好用。

function getSWF():void
{
var request:URLRequest = new URLRequest("child.swf");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
loader.load(request);
_main.addChild(loader);// _main is my display sprite
}

function loadHandler(event:Event):void
{
   var childSwf:Object = event.target.content;
   childSwf.init( PARAMS );// in my case I needed to pass XML but this is any method in the Main of the child swf, note that "stage" is read only, so your parent swf needs to set any stage vars you need
}
相关问题