讓我解釋一下我的情況......我正在製作2D平臺遊戲,在那裏你可以四處走動並拍攝東西。轉身使用W,A & D鍵,並用鼠標完成拍攝。當我單獨完成所有的操作時,一切正常,但是當我單擊鼠標按鈕並在同一時間按下某個鍵時,我的代碼開始行動,就好像鍵仍然被按下一樣。這種情況有時只會發生鼠標點擊有時會導致鍵盤輸入,怎麼樣?
我註冊所有的鍵盤事件是這樣的:
<body onload="init()" onkeydown="press(event);" onkeyup="release(event);">
下面是處理腳本:
var KEY = {W: 87, A: 65, S:83, D: 68, E: 69};
var input = {
right: false,
up: false,
left: false,
down: false,
e: false
};
function press(evt) {
var code = evt.keyCode;
switch(code)
{
case KEY.W: input.up = true; break;
case KEY.A: input.left = true; break;
case KEY.S: input.down = true; break;
case KEY.D: input.right = true; break;
case KEY.E: input.e = true; break;
}
}
function release(evt)
{
var code = evt.keyCode;
input.code = code;
switch(code)
{
case KEY.W: input.up = false; break;
case KEY.A: input.left = false; break;
case KEY.S: input.down = false; break;
case KEY.D: input.right = false; break;
case KEY.E: input.e = false; break;
}
}
即使我不註冊鼠標事件,發生這種情況。有人能解釋爲什麼嗎?我該如何解決這個問題?
你的鼠標太硬了。 – Steve 2012-02-25 23:29:39
您是否在多個瀏覽器中測試了這個功能?聽起來像一個錯誤。 – Jivings 2012-02-26 00:17:06
鼠標事件的事件處理代碼在哪裏? – 2012-02-26 07:20:12