按下游戲中的空格鍵將進行角色拍攝,當顯示確認框時按空格鍵將使該框消失,按高分表格中的空格鍵將在輸入框中添加空格。在這個例子中,同一個鍵有幾個事件,但是每次只有一個事件被觸發。在Javascript中處理多個關鍵事件的最佳方式是什麼?
是否有一個通用的(或特定的Javascript)的方法或編程方式來添加事件到某個鍵,所以他們只在特定情況下執行?
當然這是可以做到這樣的:
var inGame = true|false;
var inConfirmationBox = true|false;
function spaceBarHandler(){
if(inGame){ /*shoot*/}
else if(inConfirmationBox){ /*remove box*/}
}
document.onkeydown = function(){ /* call space bar handler if space bar was pressed */ };
但這是程序設計的一個非常混亂的方式,因爲具體行動,在空格鍵的處理函數,這使得維修難混在一起。
處理一個鍵的多個事件的最佳方式是什麼,以便這些事件只在某些情況下才會被觸發?
我想這是最好的答案,謝謝!這個想法很好,我一定會使用它。我也會添加一個方法'addState(name,fn)',它使這個對象完成。感謝:] – Harmen 2010-06-29 20:30:58
但仍然遠離處理這個問題的「最好的方式」。一個託管堆棧的處理程序更方便!由於這個問題很過時,如果有人有興趣,我可以開發。 – Pierre 2012-12-21 09:37:56