Cocos Creator踩坑日記(一)

會Coding的猴子發表於2018-07-06
  • 自定義事件和系統自帶事件

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

Cocos Creator踩坑日記(一)


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
    }
})        
複製程式碼

  • 系統自帶的滑鼠操作相關事件
    Cocos Creator踩坑日記(一)
    回掉函式引數型別: cc.Event.EventMouse
    Cocos Creator踩坑日記(一)

  • 觸控事件型別和事件物件
    Cocos Creator踩坑日記(一)
    回掉函式引數型別: cc.Event.EventTouch
    Cocos Creator踩坑日記(一)

  • 玩家輸入事件

cc.SystemEvent.EventType.KEY_DOWN (鍵盤按下)
cc.SystemEvent.EventType.KEY_UP (鍵盤釋放)
cc.SystemEvent.EventType.DEVICEMOTION (裝置重力感測)

事件型別: cc.Event.EventCustom

相關文章