當我放了一個trace(「test」);在我的flashdevelop項目的入口處運行它。該應用程序運行正常,但我沒有看到輸出中的痕跡。以下是我的代碼Trace()方法在FlashDevelop中不起作用
package
{
import flash.display.Sprite;
import flash.events.Event;
/**
* ...
* @author Anthony Gordon
*/
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
trace("test");
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var game:Game = new Game(stage);
addChild(game);
}
}
}
我敢肯定,如果(在Main'的'的其他人)從未被添加事件偵聽器的調用'removeEventListener'將失敗。另外,確保(使用斷點)首先調用init。如果不是這樣,我懷疑文檔類沒有加入舞臺。但我可能錯了! – Cameron 2010-04-03 05:08:27
@Cameron:不,對不起。這是錯誤的。查看語言參考。你也會發現,沒有辦法找出一個處理程序是否已經註冊到調度程序,因此這樣的行爲確實是一個很大的缺陷。 – back2dos 2010-04-03 17:19:36
@ back2dos:你說得對!有'hasEventListener',但它只檢查沒有特定回調的事件類型。 – Cameron 2010-04-03 19:24:51