2014-07-22 84 views
1

當你寫東西,你不斷按下一個鍵(讓我們說'a')它會寫下'a',那麼你的電腦將等待約200ms('空閒時間「),只有當你持有鑰匙時,它纔會大量地寫出'a'。 由於各種原因(主要是遊戲控制)我想刪除'空閒時間',我該怎麼去做呢?刪除「空閒時間」,同時保持按下一個鍵

回答

1

你基本上只是想開始一個計時圈時,按下該鍵,做什麼,然後結束計時循環當你讓鑰匙去:這裏是我怎麼會去這樣做:

得到知道鍵是否關閉的變量,然後將keydown事件監聽器添加到任何按鍵上的鍵,這會觸發定時循環函數,該函數在變量爲false時停止,並添加使變量爲false的鍵盤事件偵聽器,像這樣:

document.addEventListener('keydown', function(e){if(!pressed)loop(e)}); 
function loop(e){ 
    if(pressed) window.setTimeout(function(){loop(e), 20 /*just insert the ms between each loop*/}; 
    //do stuff with the key, using the 'e' parameter; 
} 
document.addEventListener('keyup', function(e){pressed=false}); 

當然,你必須爲每個鍵做到這一點,但你可以使用自動生成的數組,而且因爲你主要用它來進行遊戲控制,所以我認爲你不需要很多這些東西,所以這對你很好用