事件处理机制中又三个角色:
- 事件:cc.Event
- 事件源:精灵、层、菜单等节点对象
- 事件处理者:监听器类cc.EventListener
事件管理器:
从命名上可以看出事件监听器与事件具有对应关系,例如,键盘事件只能由键盘事件监听器来处理,他们之间需要在程序中建立关系,这种建立关系的过程被称为“注册监听器”,Cocos2d-JS提供一个事件管理器cc.EventManager来管理这种关系。
具体地说,事件管理器负责注册监听器、注销监听器和事件分发。
cc.EventListener类中注册事件监听器的函数:addListener(listener,nodeOrPriority)
第一个参数listener是要注册的事件监听器对象,第二个参数nodeOrPriority可以是一个Node对象或一个数值。如果传入的是Node对象,则按照精灵等Node对象的显示优先级作为事件优先级。如果传入的是数值,则按照指定的级别作为事件优先级,事件优先级决定事件响应的优先级别,值越小,优先级越高。
当不再进行事件响应的时候,应该注销事件监听器。主要的注销函数如下:
- removeListener(listener):注销指定的事件监听器
- removeCustomListeners(customEventName):注销自定义事件监听器
- removeListeners(listenerType,recursive):注销所有特点类型的事件监听器,recursive表示是否递归注销
- removeAllEventListeners()