COCOS-3.X事件分发机制-原理
来源:互联网 发布:js 拖动方框 流程图 编辑:程序博客网 时间:2024/04/30 04:23
一、在cocos2.x版本中,大多数事件,包括触摸、键盘等的响应机制,是通过重写父类的虚函数来实现的,这样的事件响应机制耦合度太高,导致的结果就是通用性不好、模块化不高。例如父类中关于触摸事件的虚函数:
二、而在cocos3.x版本中,原来的事件系统得到了较好的升级,演变成了一个较为独立、完善和通用的组件模块,即事件分发系统,不仅可以用来分发各种系统事件,也可以用来分发用户自定义事件。其大致工作流程如下图所示:
1、利用不同的事件订阅者订阅对应的事件,并设置事件响应回调。在cocos中,事件订阅者是EventListener类的一系列子类,包括EventListenerTouch、EventListenerMouse、EventListenerKeyboard、EventListenerAcceleration、EventListenerPhysicsContact、EventListenerCustom等;而他们所对应的事件类型,则是一个Event枚举:
/** Type Event type.*/ enum class Type { TOUCH, KEYBOARD, ACCELERATION, MOUSE, FOCUS, GAME_CONTROLLER, CUSTOM };
最后设置响应事件回调则是填写对应事件订阅者内部的function类型成员变量:
3、4、当有事件发生时,事件监听器便会在事件订阅列表中查找对应事件,然后通知所有提交了该事件的订阅者。这一步EventDispatcher会进行一个查找通知操作,所以一般提交的事件订阅不宜过多,否则对事件响应的速度会产生一定影响。
5、订阅者接收到事件监听器分发的事件通知后,触发事件回调,进入对应的事件处理逻辑进行响应。
0 0
- COCOS-3.X事件分发机制-原理
- COCOS-3.X事件分发机制-触摸事件
- Cocos2d-x 3.x 事件分发机制
- Cocos2d-x 3.X 事件分发机制
- Cocos2d-x 3.X 事件分发机制
- Cocos2d-x 3.X 事件分发机制
- Cocos2d-x 3.X 事件分发机制
- Cocos2d-x 3.X 事件分发机制
- 事件分发机制原理
- cocos2dx 3.x 事件分发机制
- Cocos2d-x 事件分发机制
- Cocos2d-X 3.x 事件分发机制详解
- Cocos2d-x 3.x新事件分发机制总结
- Cocos2d-x 3.x新事件分发机制总结
- 【cocos2d-x 3.x】03-浅谈cocos消息分发机制(上)
- cocos 事件分发2
- cocos-lua学习笔记(十一)事件分发机制
- Cocos2dx游戏引擎(3.x)----新的事件分发机制
- Linux cd切换目录命令
- 1、002 Collection介绍
- git 使用指南
- 黑马程序员——Java类变量和成员变量初始化过程
- Java类的初始化
- COCOS-3.X事件分发机制-原理
- 1、003 Collection用老式的方法遍历得出元素长度
- Java定时任务(Timer、Quartz、Spring、LinuxCron)
- Android 刮刮卡原理
- Java 单例模式详解
- 2、 001 Iterator迭代器介绍
- WAITEVENT: "latch free" Reference Note (文档 ID 34576.1)
- 《apue》读书笔记 第四章 文件和目录(3)
- 集体讨论代码时的感想: