通过判断时间戳来实现不比比上代码
// 按下用的时间时间戳
private _touchTime: number = 0;
// 是否记录按下屏幕
private _inTouch: boolean = false;
// 相差多少毫秒才算长按
private _longTapTime: number = 300;
// 开始
start() {
// input输入监听鼠标抬起事件
input.on(Input.EventType.TOUCH_START, this.onTouchStart, this);
input.on(Input.EventType.TOUCH_END, this.onTouchEnd, this);
}
// 设计一个长按短按识别.
//如果按的时间超过0.3秒则认为是长按,否则认为是点击
onTouchStart() {
// 这个是锁如果上一个动动画没有结束则不开在update里面更新
if (this._inTouch) {
// 按下开始记录当前时间戳
this._touchTime = Date.now();
}
}
onTouchEnd(event: EventTouch) {
if (Date.now() > (this._touchTime + this._longTapTime)) {
// // 长按执行2
this.jumpByStep(2);
} else {
// 点击执行1
this.jumpByStep(1);
}
}
// 视图更新
update(deltaTime: number) {
// 如果在执行其他动作则锁住
if (this._startJump) {
this._inTouch = false
//否则解锁
} else {
this._inTouch = true
}
}