Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止Javascript中的长按?_Javascript - Fatal编程技术网

如何防止Javascript中的长按?

如何防止Javascript中的长按?,javascript,Javascript,我正在制作一个HTML5游戏。当用户按下此键(比如z)时,角色将进行攻击。然而,目前在我的代码中,用户只需按住z,角色就可以无限期地攻击 我需要实现一个代码,以防止这种“长按”的发生。换句话说,如果用户一直按住z键,角色最终将停止攻击,因此用户将不得不继续按住z键,而不仅仅是按住键。如果您使用的是按键或按键事件,尝试改用keyup。您可以实现一个只触发一次的标志,除非重置 var pressed = false; window.addEventListener("keydown", ()=>

我正在制作一个HTML5游戏。当用户按下此键(比如z)时,角色将进行攻击。然而,目前在我的代码中,用户只需按住z,角色就可以无限期地攻击


我需要实现一个代码,以防止这种“长按”的发生。换句话说,如果用户一直按住z键,角色最终将停止攻击,因此用户将不得不继续按住z键,而不仅仅是按住键。

如果您使用的是
按键
按键
事件,尝试改用
keyup

您可以实现一个只触发一次的标志,除非重置

var pressed = false;
window.addEventListener("keydown", ()=>{
  if(!pressed){
   pressed = true;
   //Do thing
  }
}

window.addEventListener("keyup", ()=>{
 pressed = false;
}

改为使用
keyup
?您可以使用
keydown
,因此在这种情况下,用户必须再次按键,并再次显示您当前关于如何捕获按键事件的代码。最好还是提供一个。