egret中使用dragonbones动画

		//加载动画文件
		let skeletonData =  RES.getRes(skeleton_json); //"skeleton_json" 
		let textureData =  RES.getRes(texture_json); //"texture_json"
		let texture =  RES.getRes(texture_png);//"texture_png"
		
		//一般项目中创建一个dragonbones工厂就可以了
		var dragonbonesFactory: dragonBones.EgretFactory = new dragonBones.EgretFactory();
		//动画数据加入到工厂中 
		dragonbonesFactory.addDragonBonesData(dragonBones.DataParser.parseDragonBonesData(skeletonData));
		dragonbonesFactory.addTextureAtlas(new dragonBones.EgretTextureAtlas(texture, textureData));

		//从工厂中取出动画 拷贝一个动画数据
        //----aniname为 skeleton_json文件中 armature ---> name 字段值
		var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("001");
		//获取动画的显示加入到绘制的父类容器中
		this.addChild(armature.getDisplay()); 
		//play 接受两个参数  动画名字 及播放次数 0 : 代表无限播放 1 ~ N : 代表播放1~N次
		armature.animation.play("atk", 2); //atk0
		//设置动画显示位置
		armature.display.x = 300;
		armature.display.y = 500;
		
		//调节动画速度
		armature.animation.timeScale = 0.5;
		
		//调节动作速度
		//armature.play("walk").setTimeScale(0.5);
		
		//开启大时钟这步很关键
		//DragonBones动画库中有个WorldClock类,提供了世界时钟的功能。一般情况下,
		//我们推荐开发者将所有创建的骨架都加到一个世界时钟中去,然后在引擎的Ticker中注册一个回调函数调用世界时钟的advanceTime方法,
		//这样所有加到这个世界时钟的骨架就都能够正确的运行了
		dragonBones.WorldClock.clock.add(armature);

		
		
        //----这里从工厂中再取出一个动画
        var armature1: dragonBones.Armature = dragonbonesFactory.buildArmature(aniname);
		this.addChild(armature1.getDisplay());
		armature1.animation.play("atk0", 0); //atk0
		armature1.display.x = 600;
		armature1.display.y = 500;
		//开启大时钟这步很关键
		dragonBones.WorldClock.clock.add(armature1);

		
		egret.Ticker.getInstance().register(function(advancedTime){
			dragonBones.WorldClock.clock.advanceTime(0.01); //advancedTime/1000
		},this); 

 

 

参考: developer.egret.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值