试图在我的项目中实现新的FP 10.1全局错误处理程序,但无论我做什么未被捕获的错误,都将显示“异常”窗口(包括调试版本和发行版本SWF)。我想要做的就是防止这些弹出窗口,而是发送一条消息给我的记录器。这里是我的代码...Flash Player 10.1的全局错误处理程序不起作用
编辑:我现在简化了代码。有人能帮我一个忙,并测试下面的课程,看看它是否适用于他?因为它不适合我! ...
package
{
import flash.display.Sprite;
import flash.events.UncaughtErrorEvent;
public class GlobalErrorHandlerTest extends Sprite
{
public function GlobalErrorHandlerTest()
{
stage.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
throw new Error();
}
private function onUncaughtError(e:UncaughtErrorEvent):void
{
var message:String;
if (e.error["message"])
{
message = e.error["message"];
}
else if (e.error["text"])
{
message = e.error["text"];
}
else
{
message = e.error["toString"]();
}
trace("Uncaught Error: " + e.text);
}
}
}
我希望这会工作,但唉,它不适合我。我已将事件侦听器直接添加到我的基本显示对象。通常这个代码应该被它抓住,对吧? ()函数():void { \t throw new Error(“foo!”); },3000); ' 但它没有。另外我想它应该像AIR一样对基于Web的Flash起作用? – BadmintonCat 2011-04-12 04:29:05
Haaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr !!!!我现在知道这个问题是什么。这是一个误会!事件处理程序被调用,但错误仍然会冒泡并打开Flash播放器中的异常窗口。所以解决方案是event.preventDefault()! – BadmintonCat 2011-04-28 12:05:51