第三種響應(yīng)鍵盤的方法:利用鍵盤偵聽的方法來實現(xiàn)響應(yīng)鍵盤(個人習(xí)慣用這種方法)
假設(shè)在影片剪輯的onClipEvent(enterFrame)事件處理函數(shù)中檢測按鍵動作,而影片剪輯所在的時間軸較長,或計算機(jī)運算速度較慢,就有可能出現(xiàn)這種情況:即當(dāng)在鍵盤上按下某個鍵時還未來得及處理onClipEvent(enterFrame)函數(shù),那么按鍵動作將被忽略,這樣的話,很多你想要的效果就會無法實現(xiàn)了。 另外,還有一個需要解決的問題就是,在某些游戲(如射擊)中,我們需要按一次鍵就執(zhí)行一次動作(發(fā)射一發(fā)子彈),即使長時間按住某個鍵不放也只能算作一次按鍵,而Key對象并不能區(qū)別是長時間按住同一個鍵還是快速地多次按鍵。 所以如果要解決這個問題,就需要用到鍵盤偵聽的方法。你可以使用 “偵聽器(listener)”來偵聽鍵盤上的按鍵動作。 要使用偵聽器之前,首先需要創(chuàng)建它,你可以使用如下所示的命令來告訴計算機(jī)你需要偵聽某個事件:
Key.addListener(_root);
Key.addListener命令將 主時間軸 或 某個影片剪輯 作為它的參數(shù),當(dāng)偵聽的事件發(fā)生時,可以用這個參數(shù)指定的對象來響應(yīng)該事件。 上面的代碼指定主時間軸來響應(yīng)該事件。要讓主時間軸對該事件作出響應(yīng),還需要設(shè)置一個相應(yīng)的事件處理函數(shù),否則設(shè)置偵聽器就沒有什么意義了。 鍵盤偵聽的事件處理函數(shù)有兩個:onKeyUp和onKeyDown,如下所示:
Key.addListener(_root); _root.onKeyUp = function() { trace(Key.getAscii()); }; //代碼的意思是,當(dāng)按下一個鍵并釋放后,輸出窗口將輸出你按下的那個鍵的Ascii碼
當(dāng)然,你也可以使用影片剪輯作為偵聽鍵盤的對象,只需要使用影片剪輯的路徑代替_root作為Key.addListener命令的參數(shù)就可以了。 比如下面代碼:
Key.addListener(_root.mc); _root.mc.onKeyUp = function() { trace(Key.getAscii()); };
代碼的意思是,當(dāng)按下一個鍵并釋放后,輸出窗口將輸出你按下的那個鍵的Ascii碼,意思差不多,但是鍵盤偵聽對象不同,一個是影片mc,一個是主時間軸。
最后給出實例源文件:下載
出處:閃客帝國
責(zé)任編輯:qhwa
上一頁 利用Key對象來實現(xiàn)響應(yīng)鍵盤的操作 下一頁 利用影片剪輯的keyUp和keyDown事件
◎進(jìn)入論壇Flash專欄版塊參加討論
|