如何设置mousemove更新速度?
即时消息生成一个功能,它需要设置简单和快速的签名。 我正在画布领域写签名。 我使用jQuery,但mousemove坐标的刷新速度不够快。 会发生什么是如果你写签名的速度很快,你会看到writed像素之间有一些空白。
如何更快地设置鼠标移动的刷新速度?
$("#xx").mousemove(function(e){
ctx.fillRect(e.pageX - size, e.pageY - size, size, size);
$("#pagex").html(e.pageX - size);
$("#pagey").html(e.pageY - size);
}
你不能。 mousemove事件由浏览器生成,因此您可以在浏览器生成时尽快收到它们。
浏览器没有义务以任何给定的速率生成事件(通过像素移动或时间流逝):如果快速移动鼠标,您将看到坐标中的“跳转”被报告,因为浏览器正在报告“鼠标移动了,它现在在这里”,而不是“......并通过这些像素”。 事实上,慢速计算机上的浏览器可能会生成更少的鼠标移动事件,以免页面变慢。
你可以做的就是用鼠标直接连接mousemove事件的连续位置 - 这显然不会让你有更高的精度,但它可以减轻影响。
你需要让你的处理程序更快。
如果该事件的处理程序仍在运行,浏览器可以删除事件,因此您需要尽快离开mousemove处理程序。 你可以尝试优化那里的代码或者延迟工作直到鼠标移动完成。 绘图可能是您做的最慢的事情,所以您可以将鼠标移动存储在内存中并稍后绘制。 这将不会更新显示,直到绘制完成,但它会更好地工作。
你可以基于定时器来开启你自己的事件,可能是一个坏主意,但是如果你真的需要它,那么更好。
链接地址: http://www.djcxy.com/p/40577.html