我正在尝试编写一些代码来捕获所有错误和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及以上都会发生这种情况。
答案 0 :(得分:5)
好的解决了。代码确实有效,但它仍然在IDE中触发调试器。
然后点击继续将执行处理程序代码,如果你从IDE单独运行swf就可以了。