SWFLoaderを介してサブアプリケーション(「B.swf」で定義)をロードするメインのFlexアプリケーション(「A.swf」)があり、サブアプリケーションからUncaughtErrorEventをリッスンする必要があります。SubApp('B.swf')内からエラーをスローしたときに、イベントリスナーを呼び出すことができません。
UncaughtErrorEventとUncaughtErrorEventsのasDocを読んだ後、A.swfのloaderInfo(「outter」メインアプリ)とB.swfのloaderInfoにイベントリスナーを追加しました(ドキュメントではここでは実行しないと言っていますが、これはイベントの一部です)キャプチャおよびバブルフェーズのシーケンス...)およびSWFLoader内部FlexLoader.uncaughtErrorEvent(ドキュメントごと)のように:
swfLoader.content.loaderInfo.loader.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorFunction );
B.swfのSubApplicationがエラーをスローしたときに、Loader.uncaughtErrorEventsのイベントリスナーセットアップが起動していません。代わりに、メインアプリ(A.swf)のloaderInfoのリスナーが起動します。さらに、A.swfのloaderInfoによって受信されたイベントには、「EventPhase.AT_TARGET」に等しいeventphaseがあり、asDocは、キャプチャフェーズとバブルフェーズでのみディスパッチする必要があると述べています。
私はこれを正しく行っていませんか?何か考えや提案はありますか?
「A.swf」と「B.swf」はどちらもFlexSDK4.1、FlashPlayer10.1でコンパイルされています。ブラウザは、Flashデバッグプレーヤー10.3を実行しているFireFoxです。
ありがとう!