【问题标题】:AS3 Air On Android - Load SWF as its own Main()AS3 Air On Android - 将 SWF 作为自己的 Main() 加载
【发布时间】:2011-11-07 23:03:34
【问题描述】:

我正在使用包装应用程序下载远程 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”,则其为空。我想既然加载的 SWF 有自己的沙箱,它会像我自己安装它一样加载和运行,但似乎并非如此。如果这是一个桌面应用程序,我可以使用 NativeWindow,但它尚不支持移动设备。是否有任何已知选项可以让我在其自己的沙箱中加载并运行它,路径和根目录完好无损?可能是一个命令,它将它作为与我的包装器 swf 分开的 swf 启动?

【问题讨论】:

  • 是在加载的 swf Main 构造函数中还是在 Event.ADDED_TO_STAGE 处理程序内部调用的 stage
  • 是的,它在舞台直播后调用。

标签: android actionscript-3 air


【解决方案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
}

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多