求助:TOUCH_START事件如何判断是否多指点击?

  • Creator 版本:1.6.1
  • 目标平台: ALL

我需要在一个 node 里头捕获点击事件:

  • 单点触摸的话,响应点击事件;
  • 多点触摸的话,处理缩放。

现在的问题是,我通过 TOUCH_START 拿到的 touches 只有一个点:

let self = this;
this.node.on(cc.Node.EventType.TOUCH_START,function(event) {
            cc.log('TOUCH_START');
            var touches = event.getTouches();
            cc.log(touches.length);
            if (touches.length >= 2) {  
                // 这里一直不会进入
                cc.log('多指操作');
                return;
            } else {
                self.handleClick(event.touch, event);
            }
        }, this);

请问我怎么在 TOUCH_START 中判断是否多点?在在 TOUCH_MOVE 里这么判断是 ok 的,但已经太晚了,多点触摸的情况下,不该让 handleClick 被执行。单点点击的情况下,又应该立马响应 handleClick

求助各位,谢谢!

1赞

估计点击开始只会捕获一个点

this.node.on(cc.Node.EventType.TOUCH_START,function(event) {
在这直接弄一个变量让他为true或false,然后在update里判断这个值。
cc.log(‘TOUCH_START’);
var touches = event.getTouches();
cc.log(touches.length);
if (touches.length >= 2) {
// 这里一直不会进入
cc.log(‘多指操作’);
return;
} else {
self.handleClick(event.touch, event);
}
}, this);
[/quote]

对,我现在也是这么实现了。
不在 TOUCH_START 里响应点击,而是 TOUCH_END 里响应。TOUCH_MOVE 中判断是否多点,然后设定一个标志决定在 TOUCH_END 里是否响应点击。