creator怎样屏蔽多点触摸?

creator怎样屏蔽多点触摸?现在是可以同时按下两个按钮,怎么破 ?

解决方案:

  1. 一个全局可访问的变量用来记录 touch id
  2. 在 touch start 回调中记录当前的 touch id,在 touch end 中删除当前的 touch id
  3. 如果当前全局的 touch id 存在的话,不响应任何事件

不过这个对于 button 好像没办法,因为 button 的事件监听器是引擎内部注册的

我们以后可以提供一个全局的开关,用来开启或者关闭多点触摸

5赞

谢谢,我觉得有必要搞个全局开关控制单点还是多点触摸

你好,我们现在已经碰到了这个问题,我想知道,你们什么时候,能够解决这个问题?:sweat:

反馈了这么久,没解决啊!

在IOS的Native下
如果完全不需要多点触摸的话
AppController.mm


红框改为NO(急救的方法)

我记得以前cocos2dx 的TOUCH_ONE_BY_ONE都不会出现多点触摸的情况
不知道Creator底层也是2dx啊!搞不懂!

我在IOS原生代码中也看到这句了,但是我现在做的是H5的

这问题现在很严重,请问有什么办法可以在安卓ios端屏蔽呢

你自己搞一个状态就好了 有按下的按钮存在 就不再让下一个按钮被按

关键基本每个界面都是许多toggle和button、界面监听处理,不是一两个的问题,如果这样的话我每个界面都得监听start、end、cancel、move事件了,唉看了目前用ccc来做应用还是有些作死啊

只要在cc.Node上做处理就行了,你在实例node上做处理当然工作了大了

/***********************Node*************************/
cc.Node.maxTouchNum = 1;
cc.Node.touchNum = 0;
var __dispatchEvent__ = cc.Node.prototype.dispatchEvent;
cc.Node.prototype.dispatchEvent = function (event) {
    switch (event.type) {
        case 'touchstart':
            if (cc.Node.touchNum < cc.Node.maxTouchNum) {
                cc.Node.touchNum++;
                this._canTouch = true;
                __dispatchEvent__.call(this, event);
            }
            break;
        case 'touchmove':
            if (!this._canTouch && cc.Node.touchNum < cc.Node.maxTouchNum) {
                this._canTouch = true;
                cc.Node.touchNum++;
            }

            if (this._canTouch) {
                __dispatchEvent__.call(this, event);
            }

            break;
        case 'touchend':
            if (this._canTouch) {
                this._canTouch = false;
                cc.Node.touchNum--;
                __dispatchEvent__.call(this, event);
            }
            break;
        case 'touchcancel':
            if (this._canTouch) {
                this._canTouch = false;
                cc.Node.touchNum--;
                __dispatchEvent__.call(this, event);
            }
            break;
        default:
            __dispatchEvent__.call(this, event);
    }
};
/***********************Node*************************/
3赞

谢谢,我先试试

你好,经过测试,1.多点如果在反复快速的点击this._canTouch这个变量未能重置2.这里监听所有事件,滚动view都会失去响应。。。

1的问题没测试出来2333
2我这里scrollView滑动的好好的23333

1:点击的是一个界面上两个按钮来回快速点击,两个按钮功能一个是打开一个界面,一个是切换当前界面
2:我用的是ccc的pageview,加载上面代码web端和安卓端都没法滑动翻页了…

你说的这几个问题我本地测试好像都正常。。。我是1.5.2的

我也是1.5.2的。。。。scrollView滑动是好好的,pageview确实有问题。上面点击我打印了日志看了是有一次没有收到end或者cancel就over了

这个方案一次只能点一个node,scrollView、pageView里面有节点注册了点击事件就不好使了:sweat_smile:

好使了,快踩踩坑