如题
listener->setSwallowTouches(false);能够设置是否向下传递触碰,现在我想实现屏蔽当前显示区域的触碰,其他区域不屏蔽。
请问大神,能给一点指导,怎么设置listener;
1.将_eventDispatcher->addEventListenerWithFixedPriority(listener, -1000), -1000这个值要保证比你要屏蔽的触摸的优先级低
2.在xxxxxx::onTouchBegan里判断点击的是否是你要屏蔽的区域,如果是返回true,触摸事件被吞没,否则返回false,触摸继续向下传递
3.在onExit()中Director::getInstance()->getEventDispatcher()->removeEventListener(listener);移除你所添加的listener, addEventListenerWithFixedPriority方法添加的监听必须手动移除
谢谢了,这种方式能够实现,但是没有2.2的方便,伤不起啊!不能通过设置触摸等级,来屏蔽下层某些触摸。
3.x会在你触摸的时候重新对所有的接收触摸的界面按照渲染层次重新排列接收触摸的控件的顺序。所以,没有特殊的使用情况,不需要设置fix触摸。想屏蔽下层触摸直接在你要接收触摸的那个layer设置为不穿透就行了。
我觉得应该是不习惯的问题。3.x的触摸比起2.x的好用多啦。。。2.x感觉有点反人类=。=
怎么设置不让穿透啊
listener->setSwallowTouches(true); 然后你的这个layer的叠放在最上层就行了。