2010-12-13 86 views
4

我正在製作一個簡單的JavaScript遊戲,並且需要能夠檢查某些鍵是否被按下。我已經嘗試綁定到onkeydown事件,但我遇到的問題是雙重的:首先,它不會讓我檢查是否有多個按鍵在任何時候被按下。其次,它在開始發送垃圾郵件之前按住鍵停止。Javascript檢查鍵盤狀態

在我的代碼中,我可以有一個事件或一個函數,每毫秒檢查一次鍵是否被按下。看到這是一場比賽,我真的沒有任何問題。提前致謝。

+0

你有沒有考慮過使用JavaScript庫來照顧綁定?它會幫助你動態設置keyup/keydown,以確保遊戲保持響應。 – Mike 2010-12-13 08:29:56

+0

我還沒有看到任何庫會處理檢查鍵是否被按下。我目前使用jQuery,但我不認爲他們有這個功能。如果你能建議一個圖書館這樣做,我會非常感激。 – 2010-12-16 18:16:19

回答

6

您可以使用onKeyDown和共同的onkeyup:與此代碼存儲在pressed變量中的每個按鍵代碼

var pressed={}; 
element.onkeydown=function(e){ 
    e = e || window.event; 
    pressed[e.keyCode] = true; 
} 

element.onkeyup=function(e){ 
    e = e || window.event; 
    delete pressed[e.keyCode]; 
} 

,然後您將其刪除鍵被釋放時。所以當你需要知道哪些按鍵被按下時,你可以通過按下的對象來循環使用(.. in ..)。

+0

謝謝!這正是我正在尋找的。 – 2010-12-16 18:16:41