cocos2d-x事件触发的优先级
来源:互联网 发布:单片机设计作品 编辑:程序博客网 时间:2024/05/19 08:26
转自:http://firedragonpzy.iteye.com/blog/1622569
刚刚开始学习coocs2d-x的时候,被这个事件的优先级整的可是够呛啊。关于事件,有CCStandradTouch,CCTargetedTouch。CCTouchDispatcher类分发S获取的触摸事件。它有两种分发方式,一种是CCStandardTouchDelegate,一种是CCTargetedTouchDelegate。和前面的事件一一对应,前者将所有的Touch信息直接传递给实现该协议的对象,而后者则要求实现该代理的类一次只能处理一个事件,并且吃掉该事件,不再传播,当然也可以设置传播。
关于CCStandardTouchDelegate,它可以处理多触点事件,而CCTargetedTouchDelegate也就是相应的单点事件喽。
关于CCStandardTouchDelegate,它可以处理多触点事件,而CCTargetedTouchDelegate也就是相应的单点事件喽。
使用单点事件,基本都会用到下面的代码:
void DialogLayer::onEnter(){CCLayerColor::onEnter();CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,0,true);}void DialogLayer::onExit(){CCLayerColor::onExit();CCTouchDispatcher::sharedDispatcher()->removeDelegate(this);}最主要的就是CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,0,true);中的第三个参数,若为true,则表明吞掉事件,若为false,不吞掉事件,个人感觉和目标事件是一样的,只不过是单点,而不是多点而已。写完这个,相应的肯定会使用到下面的代码:
bool DialogLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent){return true;}void DialogLayer::ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent){}void DialogLayer::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent){}
ccTouchBegan中的return true,表明拥有对象处理权,这个返回值是和CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,0,true);的第三个参数息息相关的若为true,ccTouchBegan也为true,会吞掉事件,走接下来的move等。若ccTouchBegan为false,则不会吞掉事件,各个层被分发点击事件,但是不走move等方法。
不对啊 ,扯远了,本来是说优先级的。先说优先级:
拿精灵来举例子吧。精灵触摸事件的触发是根据添加的顺序依次触发的,后添加的精灵先捕获触摸事件,当然,这是没有设置事件优先级的情况下,若要是定义了事件的优先级,则先按照事件的优先级依次被触发,然后根据添加的顺序依次被触发,特别注意在使用CCMenu的时候,容易出现错误,之前我就是怎么点击也不触发事件,纠结了好久,希望看了本文的朋友们,不会出现此低级错了
乱啊 ,工作了一天在写,脑子有点钝了,见谅,呼呼……
不对啊 ,扯远了,本来是说优先级的。先说优先级:
拿精灵来举例子吧。精灵触摸事件的触发是根据添加的顺序依次触发的,后添加的精灵先捕获触摸事件,当然,这是没有设置事件优先级的情况下,若要是定义了事件的优先级,则先按照事件的优先级依次被触发,然后根据添加的顺序依次被触发,特别注意在使用CCMenu的时候,容易出现错误,之前我就是怎么点击也不触发事件,纠结了好久,希望看了本文的朋友们,不会出现此低级错了
乱啊 ,工作了一天在写,脑子有点钝了,见谅,呼呼……
- cocos2d-x事件触发的优先级
- cocos2d-x触摸事件优先级
- cocos2d-x触摸事件优先级
- cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x触摸事件优先级的探究与实践
- cocos2d-x触摸事件优先级的探究与实践
- Cocos2d-x:触摸事件优先级的探究与实践
- Cocos2d-x 触摸事件的创建、优先级和吞噬
- [ IOS-Cocos2d-x 游戏开发之一] -cocos2d-x触摸事件优先级的探究与实践
- cocos2D-x 学习笔记 【三】事件优先级和自定义事件
- cocos2d-x学习之菜单与事件,消息触发机制
- cocos2d-x中CCScrollView和CCMenu触摸优先级的解决方案
- cocos2d-x 简单实现RPG游戏中的事件触发(C++)
- cocos2d-x 屏蔽场景的Touch事件
- cocos2d-x处理点击事件的机制
- cocos2d-x的CCLayer触摸事件
- cocos2d-x的两种触摸事件
- NET程序员讨论群
- 原味google
- 昨天发现了浏览器显示文字不全的一个奇怪的问题
- Big Endian和Little Endian的区别
- 北大 acm 3083解题报告--dfs与bfs的运用
- cocos2d-x事件触发的优先级
- Activity launchMode
- [java] eclipse+ADT 进行android应用签名详解
- Android中bluetooth的架构
- 基于bootstrap + velocity的分页实现
- Node.js,一个基于GoogleV8引擎的Javascript运行环境
- bgr565到YCbCr的转换代码
- 排名或顺序的函数 ROW_NUMBER/RANK/DENSE_RANK/NTILE
- 博客记录