Cocos2d-x 触摸事件的创建、优先级和吞噬
2017-04-26 17:23
453 查看
触摸优先级
触摸事件的优先级,值越小,优先级越高,比如层1的优先级是-50,层2的优先级是-100,那么层2会先接收并处理触摸事件,然后才有机会轮到层1来接收处理。注意:这是针对2.x版本,3.x版本层的触摸点击事件直接与层的Z-Order相关,不需要再设优先级priority,Z-Order越大,则越先触发,越小则越晚触发。
吞噬触摸事件
swallow事件,表示当前层是否吞噬掉这个触摸,即不往优先级更低的层传送。创建触摸监听器
创建一个单点触碰监听器auto listener = EventListenerTouchOneByOne::create();
配置触摸监听器的属性,设置监听是否吞并事件
listener->setSwallowTouches(true);
设置监听器的回调函数
listener->onTouchBegan = CC_CALLBACK_2(MyUIDrama::TouchBegan, this); listener->onTouchMoved = CC_CALLBACK_2(MyUIDrama::TouchMoved, this); listener->onTouchEnded = CC_CALLBACK_2(MyUIDrama::TouchesEnded, this);
onTouchBegan:触碰按下时调用
onTouchMoved:触碰移动时调用
onTouchEnded:触碰弹起时调用
添加触摸监听器
有两种方法方法一:addEventListenerWithFixedPriority
Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(listener, 1);
addEventListenerWithFixedPriority有两个参数:
参数1:Listenter 监听器
参数2:fixedPriority 固定优先级,其中0是系统占有,不能设置为0
方法二:addEventListenerWithSceneGraphPriority
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
addEventListenerWithSceneGraphPriority有两个参数:
参数1:Listenter 监听器
参数2:node 根据node来确定监听器的优先级
两种方法的区别就是一个是自己手动指定Listenter的优先级,一个是根据node来决定。
相关文章推荐
- cocos2d-x触摸事件优先级
- cocos2d 触摸优先级以及吞噬
- cocos2d-x触摸事件优先级
- cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x触摸事件优先级的探究与实践
- 【cocos2d-x入门实战】微信飞机大战之七:触摸事件和优先级
- Cocos2d-x:触摸事件优先级的探究与实践
- cocos2d-x触摸事件优先级
- [ IOS-Cocos2d-x 游戏开发之一] -cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x JS 弹出对话框触摸监听(吞噬点击事件遮挡层)
- cocos2d-x触摸事件优先级
- cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x-3.x吞噬点击触摸事件
- cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x细节之不能设置触摸优先级隐晦bug
- Cocos2d-x游戏开发之处理单点触摸事件
- cocos2d-x 触摸事件处理机制
- cocos2d中对CCMenu 实现扩展使触摸正常图片的透明区域不触发事件
- Cocos2d-x游戏开发之单击事件_锁定触摸区域外的界面