在很多图形用户技术中,事件处理机制一般都有三个重要的角色:事件、事件源和事件处理者。事件源是事件发生的场所,通常就是各个视图或控件,事件处理者是接收事件并对其进行处理的一段程序。事件处理机制中三个角色在Cocos2d-JS引擎事件处理机制中也有这三个角色。1、事件事件类是cc.Event,它的类图如下图所示,它的子类有:cc.EventTouch(触摸事件)、cc.EventMouse(鼠标事件)、cc.EventCustom(自定义)、cc.EventKeyboard(键盘事件)和cc.EventAcceleration(加速度事件)。事件类图2、事件源事件源是Cocos2d-JS中的精灵、层、菜单等节点对象。3、事件处理者Cocos2d-JS中的事件处理者是事件监听器类cc.EventListener ,它包括几种不同类型的监听器:cc.EventListener.ACCELERATION。加速度事件监听器。cc.EventListener.CUSTOM。自定义事件监听器。cc.EventListener.KEYBOARD。键盘事件监听器。cc.EventListener.MOUSE。鼠标事件监听器。cc.EventListener.TOUCH_ALL_AT_ONCE。多点触摸事件监听器。cc.EventListener.TOUCH_ONE_BY_ONE。单点触摸事件监听器。事件管理器从命名上可以看出事件监听器与事件具有对应关系,例如:键盘事件(cc.EventKeyboard)只能由键盘事件监听器(cc.EventListener.KEYBOARD)处理,它们之间需要在程序中建立关系,这种关系的建立过程被称为“注册监听器”。Cocos2d-JS提供一个事件管理器 cc.EventManager负责管理这种关系,具体说事件管理器负责:注册监听器、注销监听器和事件分发。cc.EventManager类中添加事件监听器的函数如下:addListener(listener, nodeOrPriority)第一个参数listener是要添加的事件监听器对象,第二个参数nodeOrPriority,可以是是一个Node对象或是一个数值。如果传入的是Node对象,则按照精灵等Node对象的显示优先级作为事件优先级,如下图所示的实例精灵BoxC优先级是最高的,按照精灵显示的顺序BoxC在最前面。如果传入的是数值,则按照指定的级别作为事件优先级,事件优先级决定事件响应的优先级别,值越小优先级越高。精灵显示优先级作为事件优先级当不在进行事件响应的时候,我们应该注销事件监听器,主要的注销函数如下:removeListener(listener)。注销指定的事件监听器。removeCustomListeners(customEventName)。注销自定义事件监听器。removeListeners(listenerType, recursive)。注销所有特点类型的事件监听器,recursive参数是否递归注销。
推荐整理分享Cocos2d-JS事件处理机制(cocos2d-js教程),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:cocos2d schedule,cocos按钮点击事件,cocos2dx-js,cocos按钮点击事件,cocos按钮点击事件,cocos点击事件,cocos2d-js教程,cocos js,内容如对您有帮助,希望把文章链接给更多的朋友!
removeAllEventListeners()。注销所有事件监听器,需要注意的是使用该函数之后,菜单也不能响应事件了,因为它也需要接受触摸事件。
更多内容请关注最新Cocos图书《Cocos2d-x实战:JS卷——Cocos2d-JS开发》本书交流讨论网站: JS卷》现已上线,各大商店均已开售:
京东:
铁嘴李的Cocos2dx之旅之添加按钮 要在Cocos2d中使用Button,首先引入头文件#includeui/CocosGUI.husingnamespaceuil;引入完毕后,就创建button。代码如下:voidbtnGoodsItem(cocos2d::Ref*pSender,Widget::TouchEventTy
Cocos2d-JS键盘事件 Cocos2d-JS中的键盘事件与触摸事件不同,它没有空间方面信息。键盘事件不仅可以响应键盘,还可以响应设备的菜单。键盘事件是EventKeyboard,对应的键盘
Cocos2d-JS加速度计与加速度事件 在很多移动设备的游戏使用到了加速度计,Cocos2d-JS引擎提供了访问加速度计传感器的能力。本节我们首先介绍一下加速度计传感器,然后再介绍如何在C