UncaughtErrorEvent捕获ErrorEvents但没有抛出错误

时间:2012-03-29 05:38:16

标签: actionscript-3 flash

我正在尝试编写一些代码来捕获所有错误和ErrorEvents但是我似乎无法让它适用于抛出的错误,只有ErrorEvents。

以下工作正常

package 
{
    import flash.display.Sprite;
    import flash.events.ErrorEvent;
    import flash.events.UncaughtErrorEvent;
    public class Main extends Sprite 
    {
        public function Main():void 
        {
            loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
            dispatchEvent(new ErrorEvent(ErrorEvent.ERROR));
        }
        private function onUncaughtError(e:UncaughtErrorEvent):void 
        {
            trace( "Main.onUncaughtError > e : " + e );
            e.preventDefault();

        }
    }
}

但这并没有发现错误,并导致标准调试播放器错误弹出。

package 
{
    import flash.display.Sprite;
    import flash.events.UncaughtErrorEvent;
    public class Main extends Sprite 
    {
        public function Main():void 
        {
            loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
            throw new Error();
        }
        private function onUncaughtError(e:UncaughtErrorEvent):void 
        {
            trace( "Main.onUncaughtError > e : " + e );
            e.preventDefault();

        }
    }
}

所有支持的玩家10.1及以上都会发生这种情况。

1 个答案:

答案 0 :(得分:5)

好的解决了。代码确实有效,但它仍然在IDE中触发调试器。

然后点击继续将执行处理程序代码,如果你从IDE单独运行swf就可以了。