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

在影片的最后一幀上單擊,打開腳本面板,輸入這樣的代碼:
代碼很簡單,第一句停下影片準(zhǔn)備接收事件,接下來將mousePostion_Txt注冊(cè)為接收鼠標(biāo)事件,然后使用事件處理函數(shù)的方法捕捉onMouseMove事件并將事件發(fā)生時(shí)的鼠標(biāo)位置顯示到mousePostion_txt中,以上這個(gè)小程序的執(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);
|