UncaughtErrorEvent перехватывает ErrorEvents, но не выбрасывает ошибки - PullRequest
2 голосов
/ 29 марта 2012

Я пытаюсь написать некоторый код, чтобы перехватить все ошибки и события ошибок, однако я не могу заставить его работать на выданные ошибки, только ошибки.

Следующее работает отлично

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 Ответ

5 голосов
/ 29 марта 2012

Хорошо, решил это. Код работает, но он все еще вызывает отладчик в IDE.

Нажатие кнопки «Продолжить» выполнит код обработчика, и если вы запустите swf отдельно от IDE, это нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...