Cocos2d-x 3.x 层触摸优先级及屏蔽
来源:互联网 发布:win制作mac安装u盘 编辑:程序博客网 时间:2024/05/22 23:04
2.x版本一般是以下方法设置
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetDelegate(this, priority, true);
对象销毁的时候还需要执行下面的代码
CCDirector::sharedDirector()->removeDelegate(this);
3.x版本的触摸点击事件较之2.x版本有了很大的改动,直接与层的Z-Order相关,不需要再设优先级priority,Z-Order越大,则越先触发,越小则越晚触发。
//层 1auto Layer1 = Layer::create();addChild(Layer1, 10);auto listener1 = EventListenerTouchOneByOne::create();listener1->onTouchBegan = [this](Touch *touch, Event *event){ log("touch layer 1"); return true; };Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener1, Layer1);//层 2auto Layer2 = Layer::create();addChild(Layer2, 5);auto listener2 = EventListenerTouchOneByOne::create();listener2->onTouchBegan = [this](Touch *touch, Event *event){ log("touch layer 2"); return true;};Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener2, Layer2);
最后的输出是
touch layer 1touch layer 2
如果想吞噬掉点击事件,不让它传递到下一层,就需要改成下面的代码
auto listener1 = EventListenerTouchOneByOne::create();//这里设为truelistener1->setSwallowTouches(true);listener1->onTouchBegan = [this](Touch *touch, Event *event){ log("touch layer 1"); return true; };
然后发现了一个问题,如果onTouchBegan返回的是false的话,即便是 setSwallowTouches(true) ,也不能吞噬掉点击,还是能点到下面的层。这个还没搞懂是为什么。
0 0
- Cocos2d-x 3.x 层触摸优先级及屏蔽
- Cocos2d-x v3.12 做一个layer触摸屏蔽层
- cocos2d-x触摸事件优先级
- cocos2d-x触摸事件优先级
- cocos2d-x 3.x中Layer层触摸事件
- cocos2d-x:如何快速屏蔽触摸
- cocos2d-x如何快速屏蔽触摸
- cocos2d-x如何快速屏蔽触摸
- Cocos2d-xv3.x屏蔽下层触摸
- Cocos2d-x 3.0屏蔽下层触摸
- cocos2d-x 触摸时间设置优先级
- cocos2d-x3.x屏蔽下层触摸(制作透明图层暂停界面)
- cocos2d-x3.x屏蔽下层触摸(制作透明图层暂停界面)
- cocos2d-x3.x屏蔽触摸遮罩层屏蔽按钮
- Cocos2D v3.x中关于重叠触摸层优先级的问题
- cocos2d-x 3.x之触摸事件
- cocos2d-x 3.x 触摸响应
- cocos2d-x学习笔记番外篇05:如何快速屏蔽触摸
- 【bzoj3522】[Poi2014]Hotel 暴力+计数
- 加载动态图
- win7一键清理系统垃圾Bat脚本
- 线性基初识
- 17.2?Replication Implementation 复制实施:
- Cocos2d-x 3.x 层触摸优先级及屏蔽
- 西蒙iphone-OpenGL ES 教程-11 : 单纹理,多视图,纹理渲染,以及数学灵感
- LaravelHomestead 安装过程
- 使用继承进行类扩展新功能,真的好吗?
- vector源码剖析
- LR提示Start Recording Error
- faster-rcnn学习笔记(2)
- ERROR: "This virtual machine appears to be in use"
- 科大讯飞开放平台——语音听写接口的使用