5

因此,我在屏幕上的 objectx 处绘制了一个对象,当按下右箭头时,objecty 和递增 objectx,将对象向右移动。我遇到的问题是,如果我按住右箭头键,它会增加一次,暂停,然后重复增加。我的问题是它为什么要这样做,我怎样才能让物体在没有初始停顿的情况下流畅地移动?

$(window).keydown(function(e) {
    if(e.keyCode == 39) {
        objectx++;
    }
}
4

2 回答 2

3

制作一个增加对象的间隔,在 key down 上,并在 keyup 上停止间隔。(将间隔 ID 保存在某处,同时确保间隔已经存在时不要重复两次)

于 2013-08-14T18:18:22.767 回答
0

代码没有任何问题 - 自动重复键行为取决于 O/S + 浏览器,每个用户将有一个不同的设置,即在将键注册为重复按键之前必须连续按下多长时间,并且也以这个速度。此行为旨在避免错误的多次按键操作。

代码方面,keyDown事件被完美捕获,浏览器不会触发这些事件。

于 2013-08-14T18:35:38.517 回答