单击导入的swf内的按钮时AIR iOS应用程序挂起

时间:2013-03-27 15:09:44

标签: actionscript-3 sdk air flash

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

我有一个导入远程swf的iOS air应用程序。导入后,会将事件侦听器添加到导入的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));

触摸该按钮只会杀死该应用程序,它甚至无法触及。

任何人都有任何想法如何调试,或者为什么会出现这个问题?

由于 戴夫

1 个答案:

答案 0 :(得分:0)

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

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

import flash.system.Security;

public class Main extends MovieClip{

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

我建议尝试在不同的计算机上使用相同的设置进行编译,只是为了确保Builder安装没有一些问题。

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