我發現了一個腳本,它可以處理輸入一個小的基於HTML5的遊戲我的建築:我的按鍵捕捉腳本在Firefox中不起作用,爲什麼?
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()
{
if (!ni)
{
var evt=window.event;
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()
{
if (!ni)
{
evt=window.event;
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;
}
}
}
這是事件處理程序是如何分配的:
document.addEventListener("keydown", press);
document.addEventListener("keyup", release);
變量ni
顯示了當玩家在文本框中輸入文本時,偶爾會發生這種情況,我敢肯定,這不會導致問題。此外,這在Chrome中完美工作,但正如我所說,在Firefox中不起作用。有人在乎解釋爲什麼? Firefox版本:10.0.2.4428。
這工作,謝謝! – corazza 2012-03-04 22:48:51