监听触摸事件
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.EventType.KEY_DOWN 按键被按下 cc.SystemEvent.EventType.KEY_UP 按键抬起
键盘回调函数:
function(event){ switch(event.keycode){ case cc.KEY.space: cc.log("space"); break; } }cc.KEY.space代表空格
此处e为cc.Event.EventCustom的实例。
派发事件
自派送: this.node.emit(string,[detail]) 只能自己派送给自己 冒泡派送: dispatchEvent(new cc.Event.EventCustom(string, true)); 第一个参数代表事件名称,第二个参数true代表冒泡派送