Javascript检查键盘状态

时间:2010-12-13 08:22:58

标签: javascript javascript-events key-bindings

我正在制作一个简单的JavaScript游戏,并且需要能够检查某些键是否被按下。我已尝试绑定到onkeydown事件,但我遇到的问题有两个:首先,它不会让我检查是否在任何时候按下多个键。第二,它在按下按键之后暂停,然后开始发送垃圾邮件。

在我的代码中,我可以有一个事件,或者一个检查每毫秒以查看是否按下该键的函数。看到这是一场比赛,我真的没有任何问题。提前谢谢。

2 个答案:

答案 0 :(得分:7)

你可以一起使用onkeydown和onkeyup:

var pressed={};
element.onkeydown=function(e){
     e = e || window.event;
     pressed[e.keyCode] = true;
}

element.onkeyup=function(e){
     e = e || window.event;
     delete pressed[e.keyCode];
}

使用此代码将每个按下的密钥代码存储在pressed变量中,然后在释放密钥时将其删除。因此,当您需要知道按下哪些键时,您可以通过按下的对象循环使用for(.. in ..)。

答案 1 :(得分:0)

我刚刚写了一篇关于这个主题的博客文章。请参阅http://nixtu.blogspot.com/2010/12/less-spartan-approach-to-javascript-key.html