cocos事件分发机制
时间: 2023-10-25 14:11:22 浏览: 59
cocos事件分发机制是通过创建事件并注册到事件管理中心_eventDispatcher,通过发布事件得到响应进行回调,完成事件流的过程。_eventDispatcher是Node的属性,通过它管理当前节点(场景、层、精灵等)的所有事件的分发。事件相关的类有Event(基类)、EventCustom(自定义事件)、EventTouch(触摸事件)、EventMouse(鼠标事件)、EventKeyboard(键盘事件)、EventFocus(控件获取焦点事件)和EventAcceleration(加速计事件)。事件监听器包括EventListener、EventListenerCustom、EventListenerFocus、EventListenerMouse、EventListenerTouch、EventListenerKeyboard和EventListenerAcceleration。事件分发器是EventDispatcher,它是事件分发机制逻辑的集合体。事件监听器的创建与监听可以通过addEventListenerWithSceneGraphPriority和addEventListenerWithFixedPriority方法实现。事件分发器有两种优先级,SceneGraphPriority和FixedPriority,先分发事件到fixedPriority < 0的监听器中,然后再分发到=0的监听器(SceneGraphPriority)中,最后在分发到>0的监听器中,如果中途出现onEvent返回为true的结果,则终止分发。FixedPriority listener添加完之后需要手动remove,而SceneGraphPriority listener是跟node绑定的,在node的析构函数中会被移除。