Egret之龙骨事件

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

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

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

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

核心代码如下::

  /**
        * 展示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);
        }

结果:

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

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

添加音乐事件

代码:

  /**
        * 展示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);
        }

结果:

关键:

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

时间: 2024-11-05 12:24:42

Egret之龙骨事件的相关文章

Egret之龙骨换装

需求: 找到了黄马褂的结构: 我们新建一个DragonBones项目 , 用以为上述黄马褂换肤 我们对DragonE_view进行修改 ///<reference path="./../tools/DragonBoneTools.ts" /> module app {  export class DragonE_View  extends eui.Component implements eui.UIComponent {   private com_dragon : eu

Egret 纹理、计时器

1. 九宫切 典型例子就是圆角矩形的拉伸问题. 先去P一张绿色的圆角矩形. private createGameScene():void { var box:egret.Bitmap = new egret.Bitmap(); box.texture = RES.getRes("box_png"); //拉伸 box.width *= 2; //矢量绘图是 Shape/Sprite 的 graphics 有的功能,才有自身的 width/height 与 所绘图形的 width/hei

Egret网络请求之超时或异常的处理

 /**          * 发送网络请求          * @param reqUrl http://www.aaa.com          * @param postData uid=0&name="ch"&money=999          * @param callback 回调函数          * var loader:egret.URLLoader = <egret.URLLoader> event.target;        

Egret 学习笔记 h5牛牛源码 h5牛牛源码搭建教程

1.纹理集实际上就是将一些零碎的小图放到一张大图当中.游戏中也经常使用到纹理集.使用纹理集的好处很多,我们通过将大量的图片拼合为一张图片从而减少网络请求,原先加载数次的图片资源现在加载一次即可.同时,在引擎渲染的时候也会减少IO读取,从而提高h5牛牛源码性能.h5牛牛源码Q 2171793408     http://wowotouba.com/h52.只要发生事件,Flash就会调度事件对象.如果事件目标不在显示列表中,则Flash Player或AIR将事件对象直接调度到事件目标.例如,Fl

stopImmediatePropagation和stopPropagation (事件、防止侦听)

参考: ActionScript 3.0 Step By Step系列(六):学对象事件模型,从点击按扭开始 actionscript宝典 一.事件模型 egret中的事件模型和flash是一样的,但是年代太久了,都忘了. 之前貌似是看殿堂之路还是哪本书,记不清了. 二.测试 下面测试一下,当有3个层级的对象监听事件时,事件触发的顺序. 创建3个方块,分别为out.mid.inner. 层级关系为out最外层,mid中间层,inner最里层. class HomeScene extends eu

Egret 事件机制

主要流程: private createGameScene():void { var JimGreen = new Boy(); var HanMeimei = new Girl(); JimGreen.name = "JimGreen"; HanMeimei.name = "HanMeimei"; //拥有事件的人要接受事件的订阅:订阅的事件类型.事件发布的响应.告诉响应者谁是发布者(貌似写谁都一样) //侦听器的格式必须是 listenerName(evt:Ev

Egret之EUI及龙骨基础

本篇主要内容是 , EUI 及 龙骨. 我用EUI项目进行测试,看下效果: 实际上这个robot是一直在跑的 . 步骤 首先 , 在项目的egretProperties.json中增加EUI和龙骨模块如下: 1, 2,使用DOS命令 : egret build -e 加入这2个模块 其次 ,注册主题(default.thm.json),要使用exml文件必须要注册 1,在resource文件加下新建default.thm.json文件,如下 2,在main.ts中注册此主题: new eui.T

DragonBones龙骨骨骼中的自定义事件(另有声音、动画事件)

参考: DragonBones骨骼动画事件系统详解 一.在DragonBones中添加自定义事件帧 动画制作时 时间轴拉到最下面有一个事件层,添加一个事件帧 左边属性面板定义自定义事件 二.Egret中监听事件 新建一个测试用骨骼动画test //新建测试用骨骼动画 let armatureDisplay:dragonBones.EgretArmatureDisplay; let factory = dragonBones.EgretFactory.factory; factory.parseD

egret键盘事件监听

document.addEventListener("keydown", function (event: any) { //alert(event.key); //console.log(event.keyCode);//ASCII码 if (event.key == "1") { //this.play();//报错property "play" does not exist on type "document" 此时th