我正在尝试制作一款游戏,其功能是如果按住shift键,播放器将加速。我试图使用keyEvent但它无法检测到按键被按住或按下。当我松开换档键时,播放器保持加速模式,不会将速度恢复正常。有没有可能的方法来实现这一目标?
答案 0 :(得分:3)
您应该收听两个事件:keydown
和keyup
。在每个事件类型中,您应该检查密钥(“shift”的键码是16),在keydown
上您应该开始操作,并在keyup
停止它(如果event.keyCode === 16
) 。这是一个简单的文字颜色示例,按下“shift”时变为红色(不要忘记点击片段的打开窗口,没有它就无法工作,因为如果不关注此窗口,所有事件都将“退出”范围“为代码段”:
var onkeydown = (function (e) {
if (e.keyCode === 16) {
document.getElementById("target").style.color = "red";
}
});
var onkeyup = (function (e) {
if (e.keyCode === 16) {
document.getElementById("target").style.color = "black";
}
});
<h1 id="target">Red when holds "shift"</h1>