2

整天把头撞在墙上,以为我会看看是否有人可以对此有所了解-

我有一个导入远程 swf 的 iOS 空气应用程序。导入后,事件侦听器将添加到导入的 swf 内的按钮。单击该按钮会导致应用程序挂起。这是一些代码 -

private function loadRemoteSWF():void{
    var urlRequest:URLRequest = new URLRequest("http://www.domain.com/remote.swf");

    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
    loader.load(urlRequest);
}

private function onLoaded(e:Event):void{
     var loaderInfo:LoaderInfo = e.currentTarget as LoaderInfo;
     var adPanel:MovieClip = loaderInfo.content as MovieClip;

     adPanel.continueButton.addEventListener(TouchEvent.TOUCH_BEGIN, onContinueClicked);

     addChild(adPanel)
}

private function onContinueClicked(e:TouchEvent):void{
    trace("onContinueClicked");

}

我正在使用 Flash Builder 4.7 AIR SDK 3.5 ASC 2.0。

这只发生在发布版本上,调试版本工作正常,几乎不可能找到原因。在同一 SDK 版本上使用旧版编译器时,它也可以正常工作。

在按钮上以编程方式调度触摸事件也可以正常工作。(以为我可以尝试/捕获来查找错误)

adPanel.continueButton.dispatchEvent(new TouchEvent(TouchEvent.TOUCH_BEGIN));

触摸按钮只会杀死应用程序,它甚至不会命中跟踪。

任何人都知道如何调试这个,或者为什么会发生这个问题?

谢谢戴夫

4

1 回答 1

0

你能做一个测试吗:不要使用本机加载器,而是尝试使用 API,比如 greensocks api - SWFLoader。

此外,在加载 swf 文件之前尝试通过安全类设置接受域:

import flash.system.Security;

public class Main extends MovieClip{

    public function Main(){
       Security.allowDomain("*");
    }
}

我建议尝试在另一台机器上使用相同的设置进行编译,以确保 Builder 安装没有一些问题。

另外,您是否尝试过不同的设备(可能是您使用的设备的问题)?

于 2013-03-27T16:59:13.517 回答