事件处理机制中又三个角色:
- 事件: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():注销所有事件监听器,需要注意的是,使用该函数之后,菜单也不能响应事件了,因为它也需要接受触摸事件。
触摸事件
- 时间方面:又不同的“按下”,“移动”,“抬起”等阶段。
- 事件监听器有两个,单点触摸和多点触摸。
- 空间方面:,每个触摸点对象包含了当前位置信息以及之前的位置信息。
键盘事件:
- 不仅可以响应键盘,还可以响应设备的菜单
- onKeyPressed:当键按下时回调该属性所指定的函数
- onKeyReleased:当键抬起时回调该属性所指定的函数
鼠标事件:
- onMouseDown:当鼠标按下时回调该属性所指定的函数
- onMouseMove:当鼠标移动时回调该属性所指定的函数
- onMoveUp:当鼠标抬起时回调该属性所指定的函数