Armature.ts 1.3 KB

1234567891011121314151617181920212223242526
  1. /**自定义骨架类 */
  2. export default class Armature {
  3. public static EventType_Finish:string = 'Animation_Finish';
  4. public static EventType_Frame:string = 'Animation_Frame';
  5. public node:cc.Node;
  6. public armatureDisplay:dragonBones.ArmatureDisplay;
  7. constructor(path:string,node:cc.Node){
  8. this.node = node;
  9. this.armatureDisplay = this.node.addComponent(dragonBones.ArmatureDisplay);
  10. this.armatureDisplay.dragonAsset = cc.loader.getRes(path+'/Armature_ske',dragonBones.DragonBonesAsset);
  11. this.armatureDisplay.dragonAtlasAsset = cc.loader.getRes(path+'/Armature_tex',dragonBones.DragonBonesAtlasAsset);
  12. this.armatureDisplay.armatureName = 'Armature';
  13. this.armatureDisplay.addEventListener(dragonBones.EventObject.COMPLETE,()=>{
  14. this.node.emit(Armature.EventType_Finish,this.getAnimationName());
  15. },this);
  16. this.armatureDisplay.addEventListener(dragonBones.EventObject.FRAME_EVENT,(event:any)=>{
  17. this.node.emit(Armature.EventType_Frame,this.getAnimationName(),event.name);
  18. });
  19. }
  20. public getAnimationName():string{
  21. return this.armatureDisplay.animationName;
  22. }
  23. public playAnimation(animationName:string,playTimes?:number):void{
  24. this.armatureDisplay.playAnimation(animationName,playTimes==undefined?-1:playTimes);
  25. }
  26. }