Flash MX 2004 ActionScript圖文教程(十四)
2.6事件監(jiān)聽 事件有一個習(xí)氣,就是“拉幫結(jié)派”,正常情況下,某些對象是接收不到某些事件的,比方說一個動態(tài)文本就不能接受鼠標(biāo)事件。如果我們編寫這樣的代碼為一個動態(tài)文本指定事件處理代碼:
myTextField_txt.onMouseDown = function(){
}
當(dāng)我們在它上面單擊鼠標(biāo)時,代碼并不會執(zhí)行,因為它壓根就不會接收到鼠標(biāo)事件。要想讓它正確接受鼠標(biāo)事件,必須再加上這樣的代碼:
Mouse.addListener(myTextField);
這個語句就是讓myTextField向Mouse對象“報道”,這個語句執(zhí)行之后,myTextField就具有了“監(jiān)聽”鼠標(biāo)事件的功能了。 特別需要注意一點的,一旦某個對象被注冊為Mouse的監(jiān)聽器,它將會接受到鼠標(biāo)發(fā)出的所有事件,不論發(fā)生事件時鼠標(biāo)是否在對象上方,根據(jù)這個原理,我們來制作一個小的鼠標(biāo)監(jiān)視器。
首先向場景中添加兩個文本,上面一個靜態(tài)文本,下面一個動態(tài)文本,將動態(tài)文本命名為mousePosition_txt。

在影片的最后一幀上單擊,打開腳本面板,輸入這樣的代碼:
代碼很簡單,第一句停下影片準(zhǔn)備接收事件,接下來將mousePostion_Txt注冊為接收鼠標(biāo)事件,然后使用事件處理函數(shù)的方法捕捉onMouseMove事件并將事件發(fā)生時的鼠標(biāo)位置顯示到mousePostion_txt中,以上這個小程序的執(zhí)行效果如下圖。 
除了監(jiān)聽鼠標(biāo)事件之外,我們還可以監(jiān)聽按鍵事件和場景事件:
Key.addListener (historyArray);
Stage.addListener (historyArray);
監(jiān)聽器使用過之后可以使用removeListener將其刪除,例如:
Key.removeListener (historyArray);
Mouse.removeListener (historyArray);
Stage.removeListener (historyArray);
|