cocos creator 的事件响应

一、触摸事件

监听触摸事件

this.node.on(EventType,callback,target,[useCapture])

例:

 this.node.on(cc.Node.EventType.TOUCH_START,function(e){
      console.log("TOUCH_START");
 },this);

1.EventType代表事件类型

事件类型 含义
cc.Node.EventType.TOUCH_START 触摸开始
cc.Node.EventType.TOUCH_MOVE 在目标区域内移动时
cc.Node.EventType.TOUCH_END 从目标区域内离开屏幕时
cc.Node.EventType.TOUCH_CANCEL 从目标区域外离开屏幕时
cc.Node.EventType.ANCHOR_CHANGED 当节点锚点改变时
cc.Node.EventType.COLOR_CHANGED 当颜色改变时

2.callback为回调函数,当触发活动时,调用此函数
3.target为调用此函数的对象,即谁调用了此函数

回调函数里边可以传入一个参数event,代表触摸对象,是一个cc.Touch对象,同时也是 一个cc.Event对象。
其比较常用的方法为,
event.getLocation(), 返回一个位置坐标。
event.getDelta(), 距离上一次触摸变化了多少

关闭触摸事件

this.node.off(EventType,callback,target,[useCapture])

移除当前对象的事件

this.node.targetOff(this);

事件冒泡
子节点的触摸事件支持向父节点一层一层的传递,如果父节点也监听了相对应的触摸事件,就会触发对应事件,这个叫做事件冒泡。
可以调用cc.Event对象的方法停止事件冒泡:
event.stopPropagationImmediate() 立即停止传递当前事件
event.stopPropagation() 停止传递当前事件

二、键盘事件

cc.systemEvent.on(EventType, callback, target);

事件类型有:
cc.SystemEvent.EventType.KEY_DOWN 按键被按下
cc.SystemEvent.EventType.KEY_UP 按键抬起

键盘回调函数:

function(event){
	switch(event.keycode){
		case cc.KEY.space:
			cc.log("space");
		break;
	}
}

cc.KEY.space代表空格

三、自定义事件

this.node.on("my_event", function(e){
          console.log("my_event", e.detail);
}, this);

此处e为cc.Event.EventCustom的实例。

派发事件

  1. 自派送:
this.node.emit(string,[detail])  只能自己派送给自己
  1. 冒泡派送:
dispatchEvent(new cc.Event.EventCustom(string, true));  第一个参数代表事件名称,第二个参数true代表冒泡派送

你可能感兴趣的:(cocos,creator)