最近小生做一个要使用多点触摸的项目,UI这部分是cocostudio编写的,然后导入到代码里,等到了做多点触摸这一块后,发现多点触摸无效了,经过多次测试,排除,发现是UI控件将多点触摸事件给吞了,使用EventListenerTouchOneByOne就没事,无限无语中。。。。。。。。。请大家帮忙,看看有什么办法解决:886:
感谢版主DDDigua的回答,鄙人不才,按照版主给的资料进行测试,
auto listener = EventListenerTouchAllAtOnce::create();
listener->onTouchesBegan = (const std::vectorcocos2d::Touch*& touches, cocos2d::Event *event){
log("-----EventListenerTouchAllAtOnce----onTouchesBegan----");
};
_eventDispatcher->addEventListenerWithFixedPriority(listener, -128);
还是没效果。
用单点的测试了下,有效果
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = (const Touch* touch, Event *event) {
log("-----EventListenerTouchAllAtOnce----onTouchesBegan----");
return true;
};
_eventDispatcher->addEventListenerWithFixedPriority(listener, -128);
稍等,我测试下。
同样的问题
有一点我忘记说了,用代码生成的widget控件就可以用多点触摸
多点触摸可以用单点触摸的方式模拟出来,其实多点触摸有很多坑,比如切换场景的时候,很容易出现奇葩问题。主要原因是多点触摸没有return true的限制。