整天把我的头靠在墙上,以为我会看是否有人可以对此有所了解 -
我有一个导入远程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));
触摸该按钮只会杀死该应用程序,它甚至无法触及。
任何人都有任何想法如何调试,或者为什么会出现这个问题?
由于 戴夫
答案 0 :(得分:0)
你可以做一个测试:不要使用本机加载器,而是尝试使用API,比如greensocks api - SWFLoader。
另外,在加载swf文件之前,尝试通过安全类设置接受的域:
import flash.system.Security;
public class Main extends MovieClip{
public function Main(){
Security.allowDomain("*");
}
}
我建议尝试在不同的计算机上使用相同的设置进行编译,只是为了确保Builder安装没有一些问题。
另外,您是否尝试过不同的设备(可能是您使用的设备存在问题)?