`

Cocos2d-JS事件处理机制

 
阅读更多

在很多图形用户技术中,事件处理机制一般都有三个重要的角色:事件、事件源和事件处理者。事件源是事件发生的场所,通常就是各个视图或控件,事件处理者是接收事件并对其进行处理的一段程序。
事件处理机制中三个角色
在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参数是否递归注销。

removeAllEventListeners()。注销所有事件监听器,需要注意的是使用该函数之后,菜单也不能响应事件了,因为它也需要接受触摸事件。

 

 

 

更多内容请关注最新Cocos图书《Cocos2d-x实战:JS卷——Cocos2d-JS开发

本书交流讨论网站:http://www.cocoagame.net

欢迎加入Cocos2d-x技术讨论群:257760386

更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com

 

 

 

《Cocos2d-x实战 JS卷》现已上线,各大商店均已开售:

京东:http://item.jd.com/11659698.html

欢迎关注智捷iOS课堂微信公共平台,了解最新技术文章、图书、教程信息

分享到:
评论

相关推荐

    Cocos2d-JS游戏开发

    通过深入学习和实践,你将掌握Cocos2d-JS的各个模块,包括场景管理、动画制作、物理引擎应用、事件处理以及性能优化等。结合书中提供的示例和代码,你将有能力开发出自己的Cocos2d-JS游戏,无论是简单的休闲游戏还是...

    Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版

    在实际开发过程中,理解并掌握Cocos2d-JS的事件处理模型、内存管理和性能调优技巧至关重要。书中的书签目录将有助于读者快速定位到感兴趣的主题,无论是初学者还是有经验的开发者,都能从中受益。 总之,《Cocos2d-...

    Cocos2d-JS---demo

    4. **事件系统**:Cocos2d-JS 提供了完善的事件处理机制,如触摸事件、键盘事件等,让开发者能够轻松响应用户操作。 5. **资源管理**:Cocos2d-JS 包含了图片、音频、字体等资源的加载和管理功能,支持异步加载,...

    Cocos2d-x实战 JS卷

    《Cocos2d-x实战 JS卷》是一本深入探讨Cocos2d-x游戏开发的专著,主要聚焦于使用JavaScript语言进行游戏编程。Cocos2d-x是一个开源的游戏开发框架,广泛应用于移动设备和桌面平台,支持iOS、Android、Windows等多...

    《Cocos2d-x实战 JS卷 Cocos2d-js开发》随书源码下

    9. **脚本系统(Scripting System)**:理解Cocos2d-js的JSBinding机制,将JavaScript与C++代码无缝结合,提高性能和灵活性。 10. **音频(Audio)与视频(Video)**:学习如何播放和管理游戏中的音效和背景音乐,...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    6. **事件处理**:提供触摸、键盘、摇杆等多种输入事件的处理机制,使开发者能快速响应用户操作。 7. **物理引擎**:集成Box2D物理引擎,可以轻松实现物理模拟,如碰撞检测和刚体动力学。 8. **Audio支持**:支持...

    cocos2d-js 开发之旅-源代码

    7. **事件处理**:cocos2d-js提供一套完善的事件处理机制,包括触摸事件、键盘事件等,使得用户可以通过触摸屏幕或按键与游戏进行交互。 8. **渲染系统**:基于Canvas和WebGL,cocos2d-js提供高性能的2D渲染能力,...

    cocos2d-js/lua游戏【解密】套件

    《cocos2d-js/lua游戏解密套件详解》 在移动游戏开发领域,cocos2d-js和cocos2d-lua是常见的游戏引擎,它们为开发者提供了便捷的跨平台开发工具,使得游戏可以在iOS、Android等多个平台上运行。然而,随着游戏市场...

    cocos2d-x-3.13.1 spine3.6.zip

    Cocos2d-x是一个广泛使用的开源游戏开发框架,它基于C++,同时支持Lua和JavaScript等多种脚本语言,为开发者提供了高效、跨平台的游戏开发解决方案。在3.13.1版本中,Cocos2d-x对Spine动画引擎的集成进行了更新,这...

    Cocos2d-JS开发之旅

    2. **基本概念**:介绍Cocos2d-JS中的关键概念,如节点、场景、动作、事件处理等。 3. **图形与动画**:讲解如何使用精灵、纹理、标签等元素构建游戏画面,以及如何创建和管理动画效果。 4. **物理引擎**:介绍Box2D...

    基于 cocos2d-js 的 html5 版黄金矿工游戏.zip

    Cocos2d-js提供了丰富的API,使得开发者能够方便地进行游戏场景管理、精灵动画、物理引擎、粒子系统、音频播放以及触摸事件处理等操作。此外,由于Cocos2d-js同时兼容WebGL和Canvas,因此可以在各种浏览器上运行,...

    Cocos2d-x实战C++卷关东升著完整版pdf

    接着,书中会讲解Cocos2d-x的事件处理机制,包括触摸事件、键盘事件等,这些都是游戏交互必不可少的部分。同时,还会涉及动画和物理引擎的使用,如动作(Action)、序列(Sequence)、组(Group)以及Box2D物理引擎...

    cocos2d-x-3.1.zip

    总的来说,Cocos2d-x 3.1是游戏开发者学习2D游戏开发的一个重要参考点,虽然它已经不是最新的版本,但其核心概念和机制在后续版本中仍然保持一致,是理解整个Cocos2d-x框架的基础。解压并研究“cocos2d-x-3.1”中的...

    cocos2d-iphone-2.0.tar.gz

    12. **Multitouch Support**:针对iOS设备的多点触控特性,Cocos2d-iPhone提供了易于使用的事件处理机制,可以处理多个手指的触摸事件。 13. **Debugging Tools**:框架内嵌了调试工具,如性能分析器、内存泄漏检测...

    2048-cocos2d-js

    在本篇文章中,我们将深入探讨如何使用Cocos2d-js这个强大的JavaScript游戏引擎来实现2048游戏。 Cocos2d-js是Cocos2d-x家族的一员,是一个跨平台的游戏开发框架,支持HTML5、iOS、Android等多个平台。它提供了丰富...

    Cocos2d-JS-v3.0-API

    4. **事件处理**:Cocos2d-JS 提供了一套完整的事件处理机制,包括触摸、键盘、鼠标事件,以及游戏特定的事件如碰撞检测。 5. **音频管理**:支持背景音乐和音效的播放,提供了简单的音频控制接口。 6. **资源管理...

    Cocos2d-JS开发之旅+完整版

    这些内容融汇了作者多年的工作经验和Cocos2d-JS 的亲身使用教训,有助于读者快速掌握游戏开发的方法和避开不必要的麻烦。 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》以两个游戏为线索,每一章的学习都为...

    cocos2d-html5-v2.2.3.zip

    8. **事件处理**:通过事件监听和处理机制,开发者可以轻松响应用户输入,实现游戏交互。 9. **游戏工具**:除了核心库,Cocos2d-html5通常会包含一系列开发工具,如编辑器、资源管理器和调试器,帮助开发者更高效...

    cocos2d-js-v3.13-lite.rar_Cocos2d-JS v3.13_cocos2d HTML5框架_press

    5. **资源管理**:Cocos2d-JS 内置了高效的资源加载和缓存机制,确保资源按需加载,减少游戏启动时间和内存消耗。 6. **可视化编辑器**:配合Cocos Creator,开发者可以使用拖拽方式构建游戏场景,进行UI设计,大大...

    Cocos2D-X开发学习笔记-触屏事件使用示例

    首先,我们要了解Cocos2D-X中的触摸事件处理机制。在Cocos2D-X中,触屏事件主要通过`Touch`类和`TouchEvent`类来实现。`Touch`代表一次触摸行为,而`TouchEvent`则包含了多个`Touch`对象,表示一次多点触摸事件。...

Global site tag (gtag.js) - Google Analytics