我正在制作一个简单的JavaScript游戏,并且需要能够检查某些键是否被按下。我已尝试绑定到onkeydown
事件,但我遇到的问题有两个:首先,它不会让我检查是否在任何时候按下多个键。第二,它在按下按键之后暂停,然后开始发送垃圾邮件。
在我的代码中,我可以有一个事件,或者一个检查每毫秒以查看是否按下该键的函数。看到这是一场比赛,我真的没有任何问题。提前谢谢。
答案 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。