响应优先级与zorder
来源:互联网 发布:java带薪实训靠谱吗 编辑:程序博客网 时间:2024/06/08 18:22
cocos2d-x的消息分发和大部分的引擎有点区别,优点和缺点都很明显。
一般的分发思路都会和zorder有一定关系,同样屏幕位置的响应元素,离用户近的会屏蔽离用户远的元素的响应,即zorder值大的屏蔽zorder值小的。cocos2d-x则是由touch priority来决定的,这个和zorder是完全独立的两套体系。好处是可以比较灵活的调整响应元素的优先级,坏处是开发者需要自己控制各个响应元素的touch priority,需要做一些代码的处理以及前期的优先级规划。touch priority值越小,响应元素的响应优先级越高。这个和zorder刚好相反。
触摸消息分发还有个重要的方面就是消息响应后该触摸消息是不是就不会再传递下去,cocos2d-x中需要自己控制消息是否响应后是否会传递下去。
如果一个CCTouchDelegate被添加至CCTouchDispatcher时,如果设置bSwallowsTouches为true,则当该CCTouchDelegate所在响应元素的ccTouchBegan返回为true时,则触摸消息响应之后就会被吞掉。反之则能继续传递下去。
而且cocos2d-x的消息分发并不会看touch是否发生在响应元素的响应区域范围内与否,只根据priority顺序来传递。例如button无论多小,只要优先级够高,总能最早响应到touch消息。
这套机制我觉得还是做层简单的封装,touch响应优先级基于zorder,响应区域反应基于响应元素响应区域范围,是否吞掉消息则取决于元素本身。
一般的分发思路都会和zorder有一定关系,同样屏幕位置的响应元素,离用户近的会屏蔽离用户远的元素的响应,即zorder值大的屏蔽zorder值小的。cocos2d-x则是由touch priority来决定的,这个和zorder是完全独立的两套体系。好处是可以比较灵活的调整响应元素的优先级,坏处是开发者需要自己控制各个响应元素的touch priority,需要做一些代码的处理以及前期的优先级规划。touch priority值越小,响应元素的响应优先级越高。这个和zorder刚好相反。
触摸消息分发还有个重要的方面就是消息响应后该触摸消息是不是就不会再传递下去,cocos2d-x中需要自己控制消息是否响应后是否会传递下去。
如果一个CCTouchDelegate被添加至CCTouchDispatcher时,如果设置bSwallowsTouches为true,则当该CCTouchDelegate所在响应元素的ccTouchBegan返回为true时,则触摸消息响应之后就会被吞掉。反之则能继续传递下去。
而且cocos2d-x的消息分发并不会看touch是否发生在响应元素的响应区域范围内与否,只根据priority顺序来传递。例如button无论多小,只要优先级够高,总能最早响应到touch消息。
这套机制我觉得还是做层简单的封装,touch响应优先级基于zorder,响应区域反应基于响应元素响应区域范围,是否吞掉消息则取决于元素本身。
- 响应优先级与zorder
- MFC控件的绘制与响应顺序——ZOrder
- MFC控件的绘制与响应顺序——ZOrder
- MFC控件的绘制与响应顺序——ZOrder
- MFC控件的绘制与响应顺序——ZOrder
- ZOrder
- 手势响应事件优先级
- STM32 抢占式优先级 响应优先级
- STM32 NVIC 抢占优先级和响应优先级
- STM32的抢占优先级和响应优先级
- ZOrder方法
- UIGestureRecognizerDelegate设置响应事件优先级
- 优先级翻转与优先级继承
- 优先级翻转与优先级继承
- 优先级翻转与优先级继承
- 优先级翻转与优先级继承
- 优先级翻转与优先级继承
- stm32中断抢占优先级和响应优先级区别
- android中binder的初始化
- Reflection
- 内存 cache
- Openfiler之外篇:open-iscsi安装配置及smbclient的安装
- pdf 旋转视图,为啥不能保存?
- 响应优先级与zorder
- c++中BOOL和bool的区别
- Memcached Java Client API详解
- java存储过程
- FTP上传和下载文件--C++实现
- 由“K尾相等数”引出来的k的m次方取余(大整数取余)&& 快速幂
- Oracle 获取当前日期及日期格式
- 黑马程序员---.net 接口的作用
- Fiddler (五) Mac下使用Fiddler