我有一个主要的 Flex 应用程序('A.swf')通过 SWFLoader 加载一个子应用程序(在'B.swf'中定义),我需要从子应用程序监听 UncaughtErrorEvent。当我从 SubApp ('B.swf') 中抛出错误时,我无法调用我的事件侦听器。
在阅读了 UncaughtErrorEvent 和 UncaughtErrorEvents 的 asDoc 之后,我向 A.swf 的 loaderInfo(“外部”主应用程序)和 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 等于“EventPhase.AT_TARGET”,asDoc 说它只能在捕获和冒泡阶段调度。
我这样做不正确吗?有什么想法或建议吗?
“A.swf”和“B.swf”均使用 Flex SDK 4.1、Flash Player 10.1 编译。浏览器是运行 Flash 调试播放器 10.3 的 FireFox
谢谢!