cocos creator 长按事件简单实现

通过判断时间戳来实现不比比上代码

   // 按下用的时间时间戳
    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
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容