2012-04-14 119 views
2

我正在創建一個HTML畫布遊戲,並且需要記錄是否有按下按鍵的成功順序。記錄哪些按鍵已按下,並按哪個順序javascript?

有順序被按下的鍵是

ž然後一個

如果Z和然後按下它應該觸發一個事件。這怎麼能做到最好?

感謝

+1

平原JS或你使用如jQuery的? – ThiefMaster 2012-04-14 20:04:47

+0

jquery,javascript或兩者,只是要編輯我的答案,我已經試過:) – cgwebprojects 2012-04-14 20:06:37

+0

兩個鍵應該同時按下,還是允許在按下一個按鍵之前拿起前一個按鍵?一個純JavaScript解決方案[posted here](http://stackoverflow.com/questions/7614340/listen-to-multiple-keydowns/7614586#7614586)(使用'keypress'事件,以及'event.charCode'屬性用於可靠的鍵到字符映射)。 – 2012-04-14 20:08:07

回答

0
var keys = []; 

$("div").keypress(function(e){ 
    keys[keys.length] = e.keyCode; 
}) 

這將做到這一點。

演示:http://jsfiddle.net/DerekL/9LKby/

更具體到你的 「Z和」 例如:

var keys = [];           //store in an array (list) 

$("body").keypress(function(e){        //keypress event 
    keys[keys.length] = e.keyCode;        //save keyCodes 
    if(keys[keys.length-2]==122 && keys[keys.length-1]==97){ //122 = Z; 97 = A 
     alert("You have just pressed z and then a");   //done 
    } 
})​; 
+0

爲什麼不使用'.push()'?除此之外,更好地使用'e.which'並且我會使用一個字符串而不是一個數組 - 然後你可以很容易地檢查'if(keys =='za')'來查看是否按下了正確的鍵。 – ThiefMaster 2012-04-14 20:07:48

+0

你是指小偷嗎? – cgwebprojects 2012-04-14 20:10:04

+0

@ThiefMaster - 你只能獲取'keyCode',而不是實際的字符。 'e.which'也會給你''keyCode'。沒有什麼不同。 – 2012-04-14 20:26:26