当你写东西并且你一直按下一个键(让我们说'一个')它会写下来,然后你的电脑会等待大约200ms ('空闲时间')只有这样,它才会大量地写出' a'只要你拿着钥匙。 出于各种原因(主要是游戏控制),我想删除那个“空闲时间”,我该如何去做呢?
答案 0 :(得分:1)
你基本上只想在按下按键时启动一个定时循环,做任何事情,然后当你按下按键时结束定时循环:这就是我要做的事情:
获取一个知道密钥是否已关闭的变量然后将keydown事件监听器添加到您按下该键的任何内容上,触发一个定时循环函数,该函数在变量为false时停止,并添加一个keyup事件监听器这使得变量为false,如下所示:
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});
当然你必须为每个键执行此操作,但是你可以使用自动生成的数组,因为你主要将它用于游戏控件,我认为你不需要很多这些东西,所以这应该很好用为你