在Javascript中检测鼠标移动距离的好方法是什么?

时间:2011-09-13 14:27:51

标签: javascript mouseevent

我正在设计用户控件,我正在尝试编写鼠标控件。这就是我想出的用户输入。

var mouseInput = new GLGE.MouseInput(window);
window.onmousemove = function(ev){
        var dx = window.mouseX - prevMousePos.x;
        var dy = window.mouseY - prevMousePos.y;
        prevMousePos ={
        x:window.mouseX,
        y:window.mouseY
     };
    // I do movement calculations with dx and dy here 
}

然而,我上面提到的并不完美,因为如果鼠标到达窗口的末端则无法检测到移动。

有没有更好的方法来检测鼠标移动?我宁愿不使用它的坐标计算它,因为使用该方法我无法计算当鼠标位于屏幕边缘时移动的距离。

PS:如果有人想知道,我正在设计的东西就像谷歌街景或第一人称射击游戏。我只是希望用户能够无限地向一个方向移动鼠标。

2 个答案:

答案 0 :(得分:2)

我的意思是,你已经在使用onmuseover事件处理程序(最有效的方式,因为Javascript是异步的)。因此,您只需在用户移动鼠标时计算距离之前的距离。如果他没有进一步移动缪斯,那么玩家就会朝着同样的方向前进。

答案 1 :(得分:1)

不,没有方法可以处理浏览器窗口之外的鼠标移动。

相关问题