Cocos2d-JS 事件处理机制

来源:互联网 发布:淘宝购物车删除 编辑:程序博客网 时间:2024/04/28 08:16
事件处理机制中的三个角色
在Cocos2d-JS引擎时间处理机制中也有这3个角色。
1.事件
事件类是cc.Event,它的类图如图8-1所示,它的子类有cc.EventTouch(触摸事件)、cc.EventMouse(鼠标事件)、cc.EventCustom(自定义)、cc.EventKeyBoard(键盘事件)和cc.EventAcceleration(加速度事件)

2.事件源
事件源是Cocos2d-JS中的精灵、层、菜单等节点对象。
3.事件处理者
Cocos2d-JS中的事件处理者都是事件监听器cc.EventListener。它包括几种不同类型的监听器。
(1)cc.EventListener.ACCELERATION 加速度事件监听器
(2)cc.EventListener.CUSTOM 自定义事件监听器
(3)cc.EventListener.KEYBOARD键盘事件监听器
(4)cc.EventListener.MOUSE鼠标事件监听器
(5)cc.EventListener.TOUCH_ALL_AT_ONCE 多点触摸事件监听器
(6)cc.EventListener.TOUCH_ONE_BY_ONE 单点触摸事件监听器
4.事件管理器
Cocos2d-JS提供一个事件管理器cc.EventManager负责管理这种关系,具体地说,事件管理器负责注册监听器、注销监听器和事件分发。
cc.EventManager类中注册事件监听器的函数如下:、
addListener(listener,nodeOrPriority)
第一个参数listener是要注册的事件监听器对象。第二个参数nodeOrPriority可以是一个Node对象 或一个数值。如果传入的是Node对象。则按照精灵等Node对象的显示优先级作为时间优先级。如果传入的是数值,则按照指定的级别作为事件优先级,事件优先级决定事件响应的优先级别,值越小,优先级越高。
当不再进行事件响应的时候,应该注销事件监听器。主要的注销函数如下:
(1)removeListener(listener)注销指定的事件监听器
(2)removeCustomListeners(customEventName)注销自定义事件监听器
(3)removeListeners(listenerType,recursive)注销所有特点类型的事件监听器,recursive参数表示是否递归注销
(4)removeAllEventListeners()注销所有事件监听器,需要注意的是,使用该函数之后,菜单也不能响应事件了,因为他也需要接受触摸事件。


0 0