我正在制作一个简单的 Javascript 游戏,需要能够检查是否按下了某些键。我已经尝试绑定(bind)到 onkeydown
事件,但我遇到的问题是双重的:首先,它不会让我检查是否随时按下了多个键。其次,在开始发送垃圾邮件事件之前,它会在按住键后暂停。
在我的代码中,我可以有一个事件,或者一个函数,每毫秒检查一次键是否被按下。既然这是一个游戏,我真的没有问题。
最佳答案
您可以同时使用 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..) 循环遍历按下的对象。
关于Javascript 检查键盘状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4426946/