当你写的东西,你一直按一个键(让我们说'a'),它会写下'a',然后你的电脑将等待大约200ms('空闲时间'),只有这样,它会大量地写'a',只要你持有的键。出于各种原因(主要是游戏控制),我想要删除"空闲时间",我该怎么做?
你只需要在按键被按下时开始计时循环,然后在按键离开时结束计时循环:我是这样做的:
获取一个知道键是否为下的变量,然后为你按下的键添加一个keydown事件监听器,在变量为假时触发定时循环函数,并添加一个keyup事件监听器,使变量为假,如下所示:
document.addEventListener('keydown', function(e){if(!pressed)loop(e)});
function loop(e){
if(pressed) window.setTimeout(function(){loop(e), 20 /*just insert the ms between each loop*/};
//do stuff with the key, using the 'e' parameter;
}
document.addEventListener('keyup', function(e){pressed=false});
当然,您必须为每个键都这样做,但您可以使用自动生成的数组,并且由于您主要将其用于游戏控制,我认为您不需要很多这些东西,所以这应该很适合您