- 自定義事件和系統自帶事件
Node類的on方法定義的事件只能通過emit方法手動觸發
// node.on只能通過手動觸發事件
/*
1: 事件名
2: 觸發事件呼叫的方法
3: 方法體內this的指向
4: 是否支援事件冒泡
*/
this.node.on('keydown', (evt: cc.Event.EventCustom) => {
// evt.detail獲取傳遞過來的資料
console.log(`name=${evt.detail.name} : age=${evt.detail.age}`)
}, this, false)
// 觸發keydown事件,並傳遞資料
this.node.emit('keydown', {name: '張三', age: '18'})
複製程式碼
回掉函式引數型別: cc.Event
cc.systemEvent.on監聽的事件是系統定義好的,通過獲取使用者輸入來觸發事件
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, (evt: cc.Event.EventCustom) => {
// 獲取按鍵code
switch (evt.keyCode) {
case cc.KEY.w:
// 改變當前節點Sprite的貼圖
this.getComponent(cc.Sprite).spriteFrame = this.self_img[0]
if (this.isMove) {
this.isMove = false
// 取消重複執行方法
this.unschedule(this.moveTop)
}
break
}
})
複製程式碼
- 系統自帶的滑鼠操作相關事件
回掉函式引數型別:
cc.Event.EventMouse
- 觸控事件型別和事件物件
回掉函式引數型別:
cc.Event.EventTouch
- 玩家輸入事件
cc.SystemEvent.EventType.KEY_DOWN (鍵盤按下)
cc.SystemEvent.EventType.KEY_UP (鍵盤釋放)
cc.SystemEvent.EventType.DEVICEMOTION (裝置重力感測)
事件型別: cc.Event.EventCustom