一日中壁に頭をぶつけていたので、誰かがこれに光を当てることができるかどうか見てみようと思いました -
リモート 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 バージョンでレガシー コンパイラを使用する場合にも問題なく動作します。
プログラムでボタンにタッチ イベントをディスパッチしても問題なく動作します。(エラーを見つけるためにtry/catchを実行できると思いました)
adPanel.continueButton.dispatchEvent(new TouchEvent(TouchEvent.TOUCH_BEGIN));
ボタンをタッチするとアプリが強制終了されるだけで、トレースにはヒットしません。
これをデバッグする方法、またはなぜこの問題が発生するのか、誰にもアイデアがありましたか?
ありがとうデイブ