官方文档中龙骨动画的调用方法和事件监听方法,在实际项目中都会提示已废弃,在网上也没找到一个讨论和解决这个问题的帖子,就自己去摸索了一下,下面贴出解决方法。

这是网上找到的比较常见的写法:

private createGameScene(): void {

var dragonbonesData = RES.getRes( "RobotGame_1_json" );
    var textureData = RES.getRes( "texture_json" );
    var texture = RES.getRes( "texture_png" );

var dragonbonesFactory:dragonBones.EgretFactory = new dragonBones.EgretFactory();
    dragonbonesFactory.addDragonBonesData(dragonBones.DataParser.parseDragonBonesData(dragonbonesData));
    dragonbonesFactory.addTextureAtlas(new dragonBones.EgretTextureAtlas(texture,textureData));  
    var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot");

var armatureDisplay = this.armature.getDisplay();
    this.addChild(armatureDisplay);

armatureDisplay.x = 200;  
    armatureDisplay.y = 300;  
    armatureDisplay.scaleX = 0.5;  
    armatureDisplay.scaleY = 0.5;

dragonBones.WorldClock.clock.add( armature );  
    armature.animation.gotoAndPlay("Run");

egret.Ticker.getInstance().register(function(frameTime:number){
        dragonBones.WorldClock.clock.advanceTime(0.01)
    },this);
    
    armature.addEventListener( dragonBones.AnimationEvent.START, this.startPlay,this);
    armature.addEventListener( dragonBones.AnimationEvent.LOOP_COMPLETE, this.loop_com,this);
    armature.addEventListener( dragonBones.FrameEvent.ANIMATION_FRAME_EVENT, this.frame_event,this);
}

private startPlay(evt:dragonBones.ArmatureEvent)
    {
        console.log( "armature 开始播放动画!");
    }
private loop_com(evt:dragonBones.ArmatureEvent)
    {
        console.log( "armature 动画播放完一轮完成!");
    }
private frame_event(evt:dragonBones.FrameEvent)
    {
        console.log( "armature 播放到了一个关键帧! 帧标签为:",evt.frameLabel);
    }

private createGameScene(): void {var dragonbonesData = RES.getRes( "RobotGame_1_json" );var textureData = RES.getRes( "texture_json" );var texture = RES.getRes( "texture_png" );var dragonbonesFactory:dragonBones.EgretFactory = new dragonBones.EgretFactory();dragonbonesFactory.addDragonBonesData(dragonBones.DataParser.parseDragonBonesData(dragonbonesData));dragonbonesFactory.addTextureAtlas(new dragonBones.EgretTextureAtlas(texture,textureData));  var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot"); var armatureDisplay = this.armature.getDisplay();this.addChild(armatureDisplay);  armatureDisplay.x = 200;  armatureDisplay.y = 300;  armatureDisplay.scaleX = 0.5;  armatureDisplay.scaleY = 0.5;  dragonBones.WorldClock.clock.add( armature );  armature.animation.gotoAndPlay("Run");  egret.Ticker.getInstance().register(function(frameTime:number){dragonBones.WorldClock.clock.advanceTime(0.01)},this);armature.addEventListener( dragonBones.AnimationEvent.START, this.startPlay,this);armature.addEventListener( dragonBones.AnimationEvent.LOOP_COMPLETE, this.loop_com,this);armature.addEventListener( dragonBones.FrameEvent.ANIMATION_FRAME_EVENT, this.frame_event,this);
}private startPlay(evt:dragonBones.ArmatureEvent){console.log( "armature 开始播放动画!");}
private loop_com(evt:dragonBones.ArmatureEvent){console.log( "armature 动画播放完一轮完成!");}
private frame_event(evt:dragonBones.FrameEvent){console.log( "armature 播放到了一个关键帧! 帧标签为:",evt.frameLabel);}

红色部分为已废弃代码,下面绿色为对应修改后的代码:

private createGameScene(): void {

var dragonbonesData = RES.getRes( "RobotGame_1_json" );
    var textureData = RES.getRes( "texture_json" );
    var texture = RES.getRes( "texture_png" );

var dragonbonesFactory:dragonBones.EgretFactory = new dragonBones.EgretFactory();
    //dragonbonesFactory为new dragonBones.EgretFactory() 变量,后面需要调用

dragonbonesFactory.addDragonBonesData(dragonbonesFactory.parseDragonBonesData(dragonbonesData));
    dragonbonesFactory.addTextureAtlas(dragonbonesFactory.parseTextureAtlasData(texture,textureData));  
    var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot");

var armatureDisplay = this.armature.display;
    this.addChild(armatureDisplay);

armatureDisplay.x = 200;  
    armatureDisplay.y = 300;  
    armatureDisplay.scaleX = 0.5;  
    armatureDisplay.scaleY = 0.5;

dragonbonesFactory.clock.add( armature );  
    armature.animation.gotoAndPlay("Run");

egret.Ticker.getInstance().register(function(frameTime:number){
        dragonbonesFactory.clock.advanceTime(0.01)
    },this);
    
    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.START, this.startPlay,this);
    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.LOOP_COMPLETE, this.loop_com,this);
    armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.FRAME_EVENT, this.frame_event,this);
}

private startPlay(evt:dragonBones.ArmatureEvent)
    {
        console.log( "armature 开始播放动画!");
    }
private loop_com(evt:dragonBones.ArmatureEvent)
    {
        console.log( "armature 动画播放完一轮完成!");
    }
private frame_event(evt:dragonBones.FrameEvent)
    {
        console.log( "armature 播放到了一个关键帧! 帧标签为:",evt.frameLabel);
    }

private createGameScene(): void {var dragonbonesData = RES.getRes( "RobotGame_1_json" );var textureData = RES.getRes( "texture_json" );var texture = RES.getRes( "texture_png" );var dragonbonesFactory:dragonBones.EgretFactory = new dragonBones.EgretFactory();//dragonbonesFactory为new dragonBones.EgretFactory() 变量,后面需要调用dragonbonesFactory.addDragonBonesData(dragonbonesFactory.parseDragonBonesData(dragonbonesData));dragonbonesFactory.addTextureAtlas(dragonbonesFactory.parseTextureAtlasData(texture,textureData));  var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot"); var armatureDisplay = this.armature.display;this.addChild(armatureDisplay);  armatureDisplay.x = 200;  armatureDisplay.y = 300;  armatureDisplay.scaleX = 0.5;  armatureDisplay.scaleY = 0.5;  dragonbonesFactory.clock.add( armature );  armature.animation.gotoAndPlay("Run");  egret.Ticker.getInstance().register(function(frameTime:number){dragonbonesFactory.clock.advanceTime(0.01)},this);armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.START, this.startPlay,this);armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.LOOP_COMPLETE, this.loop_com,this);armature.eventDispatcher.addDBEventListener( dragonBones.EventObject.FRAME_EVENT, this.frame_event,this);
}private startPlay(evt:dragonBones.ArmatureEvent){console.log( "armature 开始播放动画!");}
private loop_com(evt:dragonBones.ArmatureEvent){console.log( "armature 动画播放完一轮完成!");}
private frame_event(evt:dragonBones.FrameEvent){console.log( "armature 播放到了一个关键帧! 帧标签为:",evt.frameLabel);}

解决 白鹭引擎 egret 龙骨动画 Deprecated 已废弃相关推荐

  1. Unity使用白鹭引擎的龙骨动画

    最近有个项目,通过龙骨软件制作二维骨骼动画,之后放入Unity 下面放上龙骨的官网https://dragonbones.github.io/cn/index.html 首先,我们要导入龙骨 for ...

  2. 白鹭引擎egret wing编辑器提示报错 egret 命令不存在 乱码的情况解决方法

    编辑器:egret 白鹭引擎 egret wing 描述:报错乱码或者命令不存在 问题描述:此处乱码报错实际上是egret 命令不存在 或 执行程序无法使用的中文情况,如果系统是非中文简体这里是显示英 ...

  3. 简单介绍了解白鹭引擎Egret

    (一)关于白鹭引擎Egret Egret引擎是一个开源免费的游戏框架,用于构建二维游戏.演示程序和其他图形界面交互应用等.Egret使用TypeScript脚本语言开发.当游戏完成最终的打包后,可以将 ...

  4. egret引擎html5 3d,白鹭引擎(Egret Engine)

    EgretEngine可以快速开发基于HTML5的网页游戏,您不仅可以体验到开源免费游戏引擎产品,EgretEngine同时还能通过Egret相关产品搭建快速优雅的工作流.. 相关软件软件大小版本说明 ...

  5. Egret(白鹭引擎)——Egret+fairyGui 实战项目入门

    前言 一行白鹭上青天 需求 最近,我们老板刷刷的为了省事,给美术减压(背景有点长,不说了). 美术出 fairygui,我需要在网页上看到实时操作,并且看到效果! 需求分析 这怕是要了我的狗命啊,但是 ...

  6. 白鹭引擎拉伸高度_屏幕适配方案-Egret社区-教程文档-白鹭引擎-Egret Engine-免费开源HTML5游戏引擎 - Powered by Discuz!...

    本帖最后由 云里雾里 于 2017-9-17 17:55 编辑 上周发了个贴 关于屏幕适配问题 有些小伙伴还是有这需求的.由于本人最近在研究u3d方面的东西,时间不多.今天上午抽个时间快速说下. 直接 ...

  7. html5白鹭引擎,egret

    属性详细信息 alpha 属性 alpha : number = 1 语言版本: Egret 2.4 运行时版本: Web,Native 表示指定对象的 Alpha 透明度值.有效值为 0(完全透明) ...

  8. Egret龙骨动画管理类

    关注微信公众号:每日玩机 获取ios.Android.tv.mac黑科技软件 利用龙骨工具,生成动画具体看官方文档,导出得到三个文件: 如果觉得资源文件过大,可以选择无损压缩:png无损压缩 导入项目 ...

  9. 白鹭引擎android打包,白鹭引擎能把动画打包成小程序吗

    圆形进度条音乐播放,微信小程序js怎么写? 建立两个canvas标签,先绘制底层的浅灰色圆圈背景,再绘制上层的红色进度条. WXML代码 开始动态绘制 WXSS代码 特别注意:底层的canvas最好使 ...

最新文章

  1. 位居新品第一、单品第二,乐视1s吊打了谁的耳光?
  2. 高级定时器/TIM1/TIM8 定时时间不准的问题/TIM_TimeBaseStructure.TIM_RepetitionCounter
  3. iphone黑屏转圈_iphone7无限转圈黑屏怎么回事?
  4. 【教程】nrf51822实例代码解析及修改实例
  5. java.sql 拒绝连接_hive jdbc 拒绝连接问题
  6. visual studio installer可以卸载吗_ArcGIS 怎样彻底删除和卸载
  7. 输出该数二进制表示中1的个数。求取十进制数字元素1的个数 (3种方法)
  8. java基础代码实例_java学习之web基础(3):Servlet 和 Request的登录处理实例
  9. 【优化算法】多目标麻雀搜索优化算法(MSSA)【含Matlab源码 1366期】
  10. 计算机中用于表示储存,计算机中用来表示存储器容量的基本单位是
  11. 程序员水平难判断?程序员的6大等级,赶紧对号入座吧!
  12. 计算机上面mac怎么查看,怎么看电脑的mac地址
  13. MongoDB填充因子和更新优化
  14. 心理压力的测试软件,心理压力测量量表(WYB)
  15. (27)Verilog实现倍频【方法四】
  16. 学生公寓管理系统-javaweb
  17. 迈动互联中标中建集团
  18. pdf怎么转换成word文档呢?
  19. 差点猝死!杭州某互联网大厂员工连续熬夜加班后,引发心肌炎被送ICU病房,公司:她加班是自愿的!...
  20. php preg_split spit 丢弃解决方法是preg_aplit()

热门文章

  1. 2022全国新高考1卷圆锥曲线答案
  2. 如何加密文件或文件夹?
  3. 七大壁纸网站满足所有分辨率需求!
  4. Sketch 入门学习
  5. win7升级旗舰版密钥_电脑如何一键重装系统win7 一键重装win7系统教程
  6. Reading RxJava Marble Diagrams
  7. “一老一幼”的智慧化守护,网易和中国电信交出“三年答卷”
  8. K3s离线安装-四种类型
  9. [深入研究]什么是G3D几何交换格式?
  10. 南京、西安集成电路企业和高校分布一览(附产业链主要厂商及高校名录)