让我解释一下我的情况......我正在制作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