【问题标题】:Anyone else unable to listen to uncaughtErrorEvent when loaded by another swf?其他人在被另一个 swf 加载时无法收听 uncaughtErrorEvent 吗?
【发布时间】:2010-06-11 05:00:01
【问题描述】:

当我尝试在直接加载时访问uncaughtErrorEvents 调度程序时,一切正常。但是当我在另一个 swf 加载时尝试相同的代码时,我得到一个引用错误。

protected function onAddedToStage(e:Event):void {
    trace("Flash version: " + Capabilities.version);
    try {
      loaderInfo.uncaughtErrorEvents.addEventListener("uncaughtError", onUncaughtError);
      trace("YAY!");
    } catch (e:Error) {
      trace(e);
    }
}

直接加载时的输出(在浏览器中):

Flash version: MAC 10,1,53,64
YAY!

由另一个“加载器” SWF 加载时的输出:

Flash version: MAC 10,1,53,64
ReferenceError: Error #1069: Property uncaughtErrorEvents not found on flash.display.LoaderInfo and there is no default value.

如果其他人可以复制这一点,我将不胜感激。

编辑:也尝试过使用stage.loaderInfo,而不仅仅是loaderInfo。同样的问题...

【问题讨论】:

    标签: apache-flex flash actionscript-3 loaderinfo


    【解决方案1】:

    加载对象的 loaderInfo 与初始化对象的 loaderInfo 不同,通过 Loader 类处理的内容也不同。在文档中声明您必须将侦听器添加到加载器上的 uncaughtErrorEvents,而不是与其关联的 loaderInfo:

    检测发生的未捕获错误 在加载的 SWF 中,使用 Loader.uncaughtErrorEvents 属性, 不是 Loader.contentLoaderInfo.uncaughtErrorEvents 财产。

    -livedocs link

    所以大概你必须将它添加到加载器而不是加载或检测是否加载,然后将其添加到父级或其他东西。我知道不优雅,但我能想到的只是绕过它。

    【讨论】:

      【解决方案2】:

      查看此链接:https://bugs.adobe.com/jira/browse/FP-4978

      Flash Player 中存在影响处理程序的错误 模块上的 uncaughtErrorEvents

      如果您在 Adob​​e 的 JIRA 中注册并投票,该错误将很快得到修复...

      【讨论】:

        【解决方案3】:

        我将事件侦听器附加到“根”,这对我有用:

        sprite.root.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
        

        在调试 Flash Player 中,这仍然会出错,但在非调试版本中,错误将出现在 Flash Player 的对话框中 - 然后处理程序将做出响应。要停止出现对话框,请添加:

        event.preventDefault();
        

        所以:

            private function onUncaughtError(event:UncaughtErrorEvent):void
            {
                event.preventDefault();
                // do something with this error
            }
        

        我在 AIR 中使用它,但我认为它也适用于标准 AS3 项目。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-14
          • 1970-01-01
          • 1970-01-01
          • 2011-05-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-10
          相关资源
          最近更新 更多