cocos2d-js v3事件管理器

总概:

1、时间监听器(cc.EventListener)封装用户的事件处理逻辑。

2、事件管理器(cc.eventManager)管理用户注册的事件监听器。

3、事件对象(cc.Event)包含事件相关信息的对象。

事件监听器包含以下几种类型:

1、触摸事件监听器(cc.EventListenerTouch)

2、键盘事件监听器(cc.EventListenerKeyboard)

3、加速计事件监听器(cc.EventListenerAcceleration)

4、鼠标事件监听器(cc.EventListenerMouse)

5、自定义事件监听器(cc.EventListenerCustom)

(事件管理器)例子:

var listener = cc.EventListener.create({
            event:cc.EventListener.TOUCH_ONE_BY_ONE,
            onTouchBegan:function(touch,event){
                if(cc.rectContainsPoint(event.getCurrentTarget().getBoundingBox(),touch.getLocation())){

cc.log("点击后移除该事件监听器!");

cc.eventManager.removeListener(listener);

}
            }

});

cc.eventManager.addListener(listener, label);//label为需要监听的对象

(自定义事件)例子:

//添加自定义事件
        var myListener = cc.EventListener.create({
            event:cc.EventListener.CUSTOM,
            eventName:"MyEvent",
            callback:function(event){
                cc.log("data is " + event.getUserData());
            }
        });
        //事件派发
        var e = new cc.EventCustom("myEvent");
        cc.eventManager.dispatchEvent(e);

时间: 2024-07-31 14:14:42

cocos2d-js v3事件管理器的相关文章

[cocos2dx笔记010]用于UI的事件管理器

cocos2dx有一个编辑器:cocostudio,目前来说,已经是比较好用了,只要加载导出的资源,就可以用上了.省去手动搭建面的麻烦.但是,很多需要事件的地方,操作比较麻烦,所以这里提供一个事件管理器来集中和简化管理事件.对于C++事件委托方面,我这里使用了是FastDelegate(注:一个牛人写的).下面是具体实现的代理,不多. /* UI触摸事件管理器. 原有cocos2dx带的触摸事件,每次监听要操作的步骤比较多,为此增加了一个事件管理器,来集中和简化管理 */ #ifndef _X_

事件管理器

项目开发过程中经常会用到代理事件,为方便管理,避免代码混乱,需要一个总的事件管理器: using UnityEngine; using System.Collections; using System.Collections.Generic; using System; public class EventManager<T> { private static Dictionary<EventType,List<Action<T>>> eventDic =

phalcon:model 事件与事件管理器

事件与事件管理器(Events and Events Manager)¶ Models allow you to implement events that will be thrown when performing an insert/update/delete. They help define business rules for a certain model. The following are the events supported by Phalcon\Mvc\Model an

storm事件管理器EventManager源码分析-event.clj

storm事件管理器定义在event.clj中,主要功能就是通过独立线程执行"事件处理函数".我们可以将"事件处理函数"添加到EventManager的阻塞队列中,EventManager的事件处理线程不断地从阻塞队列中获取"事件处理函数"并执行. EventManager协议 协议就是一组函数定义的集合,协议中函数的第一个参数必须为实现该协议的实例本身,类似于java中实例方法的第一个参数为this:协议类似于java中的接口. (defpro

自定义的事件管理器

自定义的事件管理器 周银辉 大多数框架下都提供了事件管理器的,但不使用框架时为了让事件发送者和事件接收者之间解耦,就可以如下写个简单的 public enum EventAdministratorEventTypes { ApplicationStartup, //在这里添加你需要的事件 } public class EventAdministratorEventArgs : EventArgs { public object Arg { get; protected set; } public

[Web 前端] 使用yarn代替npm作为node.js的模块管理器

cp from : https://www.jianshu.com/p/bfe96f89da0e Fast, reliable, and secure dependency management Yarn是Facebook公司出品的用于管理nodejs包的一款软件,开发过nodejs的同学应该知道,我们一般都使用npm作为我们nodejs项目的模块管理器,但npm有一些历史遗留问题,首先,npm安装速度比较慢,而且当项目中模块数量越来越多时,管理这些模块及其依赖的版本是件令人头疼的事,其次npm

node.js入门经典 第2章 npm(Node包管理器)

2.1 npm是什么 npm(Node Package Manager)是Node.js的包管理器.它允许开发人员在Node.js应用程序中创建.共享并重用模块. 2.3 安装模块 npm install [module_name] 2.4 使用模块 var module = require{'module'}; 2.8  使用package.json指定依赖关系 使用package.json文件来指定在应用程序中要用的模块,并且通过单个命令来安装它们: npm install

js自定义事件的实现探索

我们一般所熟悉的事件,都是这样的:onclick,onmouseover,ontouchstart,onfocus... 但这里要讨论自定义事件的实现,包含:事件注册/监听.事件分发. 有两种方式去实现: 自己实现事件管理器:CustomEventManager 使用document.createEvent 先说第一种方式 CustomEventManager的实现 要实现一个完整的事件体系,必须包含2大功能:注册/监听.触发,用伪代码表示: function CustomEventManage

nodejs-npm模块管理器

JavaScript 标准参考教程(alpha) 草稿二:Node.js npm模块管理器 GitHub TOP npm模块管理器 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 简介 npm init npm set npm config npm info npm search npm list npm install 基本用法 安装不同版本 避免系统权限 npm update,npm uninstall npm run 参数 scripts脚本命令最佳实践 p