參考:
一、在DragonBones中添加自定義事件幀
動畫制作時
時間軸拉到最下面有一個事件層,添加一個事件幀
左邊屬性面板定義自定義事件
二、Egret中監聽事件
新建一個測試用骨骼動畫test
//新建測試用骨骼動畫 let armatureDisplay:dragonBones.EgretArmatureDisplay; let factory = dragonBones.EgretFactory.factory; factory.parseDragonBonesData(RES.getRes("test_ske_dbbin")); factory.parseTextureAtlasData(RES.getRes("test_tex_json"), RES.getRes("test_tex_png")); armatureDisplay = factory.buildArmatureDisplay("test"); armatureDisplay.animation.play("testAction"); //監聽幀事件 armatureDisplay.addEvent(dragonBones.EgretEvent.FRAME_EVENT, this.onFrameEvent, this);
//處理幀事件 public onFrameEvent(e:dragonBones.FrameEvent){ if(e.frameLabel == "push_complete"){ console.log("AAAAAA:", e.frameLabel); } }
輸出
三、聲音事件
監聽聲音事件,聲音事件並不需要像自定義事件一樣使用armatureDisplay來監聽。
dragonBones.SoundEventManager.getInstance().addEventListener( dragonBones.SoundEvent.SOUND, this.sound_event,this);
聲音事件處理
private sound_event(evt:dragonBones.SoundEvent) { console.log( "armature 要播放聲音啦!聲音的值為:",evt.sound); }
輸出:
四、添加動畫控制
這個貌似沒有事件監聽,只是播放到該幀時,跳轉播放另一個動畫。你可以在這里選擇跳轉到哪個動畫。