creator怎样屏蔽多点触摸?

放心,已安排到2.2.2版本,也就是下个版本就会上这个功能

终于填这个坑啦:joy:

原来问这个问题的兄弟们,如今怎么样了

真好啊,坐等2.2.2

卧槽 ,牛批啦 引擎组。

其实处理起来很简单,不多说了,你想让哪个节点下是单点触摸,就把它挂在哪,想全局单点就挂canvas

const { ccclass } = cc._decorator;

@ccclass
export default class touchSingle extends cc.Component {
    private _touchID: number = null;

    private _touchStart(event) {
        if (this._touchID !== null) {
            event.stopPropagation();
        } else {
            this._touchID = event.getID();
        }
    }

    private _touchMove(event) {
        if (this._touchID !== event.getID()) {
            event.stopPropagation();
        }
    }

    private _touchEnd(event) {
        if (this._touchID !== event.getID()) {
            event.stopPropagation();
        } else if (!event.simulate) {
            this._touchID = null;
        }
    }

    onEnable() {
        this.node.on(cc.Node.EventType.TOUCH_START, this._touchStart, this, true);
        this.node.on(cc.Node.EventType.TOUCH_MOVE, this._touchMove, this, true);
        this.node.on(cc.Node.EventType.TOUCH_END, this._touchEnd, this, true);
        this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._touchEnd, this, true);
    }

    onDisable() {
        this.node.off(cc.Node.EventType.TOUCH_START, this._touchStart, this, true);
        this.node.off(cc.Node.EventType.TOUCH_MOVE, this._touchMove, this, true);
        this.node.off(cc.Node.EventType.TOUCH_END, this._touchEnd, this, true);
        this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._touchEnd, this, true);
    }
}


用过的都说好,记得点赞

11赞

mark

mark

mark

这么多年了,终于看到点光了

现在不止是光了,太阳已经出来了,只是还有点云层,2.2.3有了

:grin:我早就解决了:sunglasses:

方法好用,就是IOS端有点问题,我在IOS端发现getID()后是负数了,于是我把private _touchID = null ;touchEnd里最后也置为空就好了

那我也改一下,你说的是在native端么?

好!!!

2.3.0

你好,麻烦问一下,simulate这个参数是干嘛的?我在调试的时候这个参数都是undefined

scrollView扔出来的,你去看scrollView的源码

1赞

mark

大佬,没看到文档里有介绍

单点触摸开关