Egret之龙骨事件

首先来上龙骨的自定义事件:

1,在动画制作中 , 选择一个动画  , 选中事件层加一个关键帧

wKioL1nD1IXgJRMQAAHd7ukr8L0794.png-wh_50

可以看到我在第11帧添加了一个关键帧


2,在属性面板中添加一个自定义事件

wKioL1nD1R6xpuLfAABJAoyS4JI935.png-wh_50


核心代码如下::

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   /**
         * 展示Sheep特效
         */
         private showRoleWing(wingId: number): void {
             this .egretFactory = tools.DragonBoneTools.Instance.createEff2New(
                 "Sheep_Ani_ske_json" ,
                 "Sheep_Ani_tex_json" ,
                 "Sheep_Ani_tex_png" ,
                 );
             this .eff_robot =  this .egretFactory.buildArmatureDisplay( "Armature" );
             this .addChild( this .eff_robot);
             this .eff_robot.animation.play( "goat_eat_anim" ,0);
             this .eff_robot.x = 200;
             this .eff_robot.y = 450;
             this .eff_robot.armature.addEventListener( dragonBones.AnimationEvent.START,  this .startPlay, this );
             this .eff_robot.armature.addEventListener( dragonBones.AnimationEvent.LOOP_COMPLETE,  this .loop_com, this );
             this .eff_robot.armature.addEventListener( dragonBones.FrameEvent.ANIMATION_FRAME_EVENT,  this .frame_event, this );
              //this.stage.addEventListener(egret.TouchEvent.TOUCH_BEGIN,this.onTouch,this);
         }
         private startPlay(evt:dragonBones.ArmatureEvent)
         {
             console.log(  "动画播放开始" );
         }
         private loop_com(evt:dragonBones.ArmatureEvent)
         {
             console.log(  "动画播放完一轮完成!" );
         }
         private frame_event(evt:dragonBones.FrameEvent)
         {
             console.log(  " 播放到了一个关键帧! 帧标签为:" ,evt.frameLabel);
         }

结果:

wKioL1nD1zDjUEBSAAA7Cle7uyY427.png-wh_50

关键: this.eff_robot.armature.addEventListener( dragonBones.FrameEvent.ANIMATION_FRAME_EVENT, this.frame_event,this);

当我们在DragonBones中加入了帧事件事 , 这个就会触发。



添加音乐事件

wKiom1nD2HeiIe1KAAA2RzqiOWI291.png-wh_50


代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
   /**
         * 展示Sheep特效
         */
         private showRoleWing(wingId: number): void {
             this .egretFactory = tools.DragonBoneTools.Instance.createEff2New(
                 "Sheep_Ani_ske_json" ,
                 "Sheep_Ani_tex_json" ,
                 "Sheep_Ani_tex_png" ,
                 );
             this .eff_robot =  this .egretFactory.buildArmatureDisplay( "Armature" );
             this .addChild( this .eff_robot);
             
             this .eff_robot.x = 200;
             this .eff_robot.y = 450;
             this .eff_robot.armature.addEventListener( dragonBones.AnimationEvent.START,  this .startPlay, this );
             this .eff_robot.armature.addEventListener( dragonBones.AnimationEvent.LOOP_COMPLETE,  this .loop_com, this );
             this .eff_robot.armature.addEventListener( dragonBones.FrameEvent.ANIMATION_FRAME_EVENT,  this .frame_event, this );
             dragonBones.SoundEventManager.getInstance().addEventListener( dragonBones.SoundEvent.SOUND,  this .sound_event, this );
              //this.stage.addEventListener(egret.TouchEvent.TOUCH_BEGIN,this.onTouch,this);
              this .eff_robot.animation.play( "goat_eat_anim" ,0);
         }
         private startPlay(evt:dragonBones.ArmatureEvent)
         {
             console.log( "动画播放开始" );
         }
         private loop_com(evt:dragonBones.ArmatureEvent)
         {
             console.log(  "动画播放完一轮完成!" );
         }
         private frame_event(evt:dragonBones.FrameEvent)
         {
             console.log(  " 播放到了一个关键帧! 帧标签为:" ,evt.frameLabel);
         }
         private sound_event(evt:dragonBones.SoundEvent)
         {
             console.log(  "音的值为:" ,evt.sound);
         }

结果:

wKioL1nD2VXzchVwAAAsG_PNctk426.png-wh_50

关键:

dragonBones.SoundEventManager.getInstance().addEventListener( dragonBones.SoundEvent.SOUND, this.sound_event,this);
















本文转自Aonaufly51CTO博客,原文链接:http://blog.51cto.com/aonaufly/1967646 ,如需转载请自行联系原作者




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值