【发布时间】:2011-10-14 13:43:56
【问题描述】:
我有一个主 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
谢谢!
【问题讨论】:
标签: flash apache-flex swfloader uncaught-exception subapplication