更新于 

Event 交互事件

事件系统

事件监听

监听事件
1
eventTarget.on(type, func, target?);
  • type:事件注册字符串
  • func:事件回调函数
  • target:事件接收对象
on和once的区别
  • on监听的事件每次都会触发
  • once监听的事件首次响应后就会关闭监听
取消监听事件
1
eventTarget.off(type, func?, target?)

指定卸载的响应事件和卸载事件对象都是可选的

自定义事件

自定义事件一般很少用到,
因为大部分时候,都能直接获取到目标Node并调用其中的方法。

自定义事件有两种主要的定义方式:

使用on来自定义节点事件,
emit来触发事件

1
2
3
4
5
// 事件的定义
eventTarget.on("self_event",(arg1, arg2)=>{})

// 事件的触发
eventTarget.emit('self_event', arg1, arg2)

使用EventCustom自定义事件
dispatchEvent触发事件

1
2
3
4
5
// 参数1:事件名  参数2:是否冒泡
let event = new cc.Event.EventCustom("self_event", true)
// 给自定义事件添加detail属性,作为传递参数
event.setUserData("hello")
this.node.dispatchEvent(event)

事件系统

Cocos提供几种事件系统:

同样也提供了一些内置事件:

  • 鼠标事件
  • 触摸事件
    • event.getID 可以获取到触控的手指编码
  • 键盘事件
    • 键盘事件是游戏全局事件
    • cc提供键盘编码全局变量: cc.macro.KEY
  • 设备重力传感事件
全局与节点触摸和鼠标事件 API