試圖在我的項目中實現新的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