2004/11/7

關於鍵盤訊號

最近MMUG有在討論,想想這要解釋起來頗麻煩,不如寫一篇好了。
以下內容是在下做鍵盤訊號處理的慣用方式,針對onKeyDown()之停頓現像做修正。以一個簡單的人物控制做示範


如果只用onKeyDown(),將會發現停頓現象,例如:

以上是按方向鍵「上」即trace("a")的動作,若按著不動,將會不斷出現"a"訊號,直到放開鍵盤為止。程式是正常執行,但第一次出現"a"與第二次出現"a"的中間,會有一小段停頓現象。

這種小問題在製作動作遊戲時必需予以排除,除否會造成遊戲執行的不順暢。

我個人是會再用一個onEnterFrame給予修正,做為listener到被控制物件中的緩衝處理。

例如:

onKeyDown或onKeyUp只單純負責取得訊號,中間需用一個onEnterFrame的function去整理訊號,除了讓訊號更精準外,還可順便修正一些垃圾訊號(如同時按左及按右),最後再以修正過的訊號去指定角色動作。
原始檔下載

以上純屬個人經驗分享,可能不是最有效方便的,還請各方賢達多多指教。

沒有留言: