cocos 事件转发

CCDirector在函数setOpenGLView中设置pobOpenGLView,同时会掉用

m_pobOpenGLView->setTouchDelegate(m_pTouchDispatcher);m_pTouchDispatcher被初始化为CCTouchDispatcher事件分发管理器。


CCEGLView继承CCEGLViewProtocol,setTouchDelegate来自CCEGLViewProtocol类,

CCEGLView中的消息循环中,会调用代理父类中的handleTouchesBegin,进而调用m_pDelegate的相关函数,而此时m_pDelegate被赋值为CCTouchDispatcher。

此时便实现了从view到CCTouchDispatcher事件的分发。


CCLayer继承CCTouchDelegate事件处理类,重载开始,移动,取消,接受函数

CCTouchDispatcher类中函数addTargetedDelegate,可以添加CCLayer作为事件处理类,进而在CCTouchDispatcher收到CCEGLView的消息事后,遍历array中的所有Delegate类,进行处理消息





原文地址:https://www.cnblogs.com/riskyer/p/3231134.html