gpt4 book ai didi

javascript - 获得鼠标保持时间的更好方法是什么?

转载 作者:行者123 更新时间:2023-11-30 08:49:19 24 4
gpt4 key购买 nike

我正在尝试计算玩家按住鼠标按钮的时间。我试过了,但没用:

var Game = cc.Layer.extend({
count: false,
countTimer: null,

init: function () {
var selfPointer = this;

this.canvas.addEventListener('mousedown', function(evt) {
selfPointer.count = true;
selfPointer.countTimer = window.setTimeout(selfPointer.Count(), 1);
});

this.canvas.addEventListener('mouseup', function(evt) {
selfPointer.count= false;
window.clearTimeout(selfPointer.countTimer);
});
},

Count: function() {
if (this.count)
{
window.setTimeout(this.Count(), 1);
}
}

这是我的代码的一部分(为简洁起见),如果玩家按住按钮,我想在任何 1 毫秒内执行一个 Action 。

此外,这不起作用,我认为这是比我的方法更好的方法。有什么想法吗?

最佳答案

为什么要为这个简单的任务设置超时?您可以获取 mousedown 的时间、mouseup 的时间并计算它们的差异。无论如何,浏览器中的计时器分辨率小于 1 毫秒。阅读this article Nickolas Zakas 以获得有关时间分辨率的更多信息。

代码是:

var Game = cc.Layer.extend({
init: function () {
var holdStart = null,
holdTime = null;

this.canvas.addEventListener('mousedown', function(evt) {
holdStart = Date.now()
});

this.canvas.addEventListener('mouseup', function(evt) {
holdTime = Date.now() - holdStart;
// now in holdTime you have time in milliseconds
});
}

关于javascript - 获得鼠标保持时间的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19201215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com