我写的这个 只能做到跳跃 做不到蹲下
请大佬们指点一下
我写的这个 只能做到跳跃 做不到蹲下
请大佬们指点一下
doubleTimeEclipse每次都会重新赋值为0,永远不可能等于2.你应该检测点击间隔,间隔大于一定值再重新赋值为0
你要先理解 start和end的触发机制 start是按下的瞬间生效 end是松开的瞬间生效 不论你怎么按 在end里面 你的this.hold_me_click 永远是1 正确的做法是在按下start的瞬间 开启一个生命周期为0.2s或者0.3的计时器 在这个计时器内 执行touch_end的逻辑 这样就好了
您说的我不太明白 我是要判断长按时间来进一步判断是单击还是双击?您说的是这个逻辑吗?
您可以说的详细点吗
你在start 和 end 侦听里面 打个日志就知道了 你这样得到的hold_one_click永远都是1
可以试试这样子
const TIMEGAP = 500
let isClickOnce = false
let firstTapTime
let nowTapTime
let tapTimeGap
this.node.on('click', function() {
if (!isClickOnce) {
//第一次点击
isClickOnce = true
firstTapTime = new Date().getTime()
} else {
//第二次点击
isClickOnce = false
nowTapTime = new Date().getTime()
tapTimeGap= nowTapTime - firstTapTime
if (tapTimeGap<= TIMEGAP) {
//DO SOMETHING
}
}
})
_onBtn2() {
if (this._isClicked) {
this._isClicked = false;
console.log(‘双击–>’);
} else {
this.scheduleOnce(function() {
if (this._isClicked) {
this._isClicked = false;
console.log(‘单击–>’);
}
}.bind(this), 0.25);
this._isClicked = true;
}
},