龙骨动画学习八:同名骨骼之间的动画拷贝
在DragonBones中同名骨骼之间的动画数据是可以互相拷贝的。
同名骨骼
骨骼的名称相同结构相同。如下图。

elf骨架的动画有以下几种 warrior中的动画有以下几种

现在我要把elf骨架的idle动画拷贝给warrior

private createScene(){
//创建工厂
let factory:dragonBones.EgretFactory = dragonBones.EgretFactory.factory;
//添加解析龙骨数据
this.addDragonbonesDataToFactory(factory,"theElf");
this.addDragonbonesDataToFactory(factory,"theWarrior");
// 创建elf骨架
let elfArm:dragonBones.Armature = factory.buildArmature("elf");
this.addChild(elfArm.display);
elfArm.display.x = 100;
elfArm.display.y = 300;
// 创建warrior骨架
let warriorArm:dragonBones.Armature = factory.buildArmature("warrior");
this.addChild(warriorArm.display);
warriorArm.display.x = 400;
warriorArm.display.y = 300;
//开始动画
factory.clock.add(elfArm);
factory.clock.add(warriorArm);
egret.startTick((dt)=>{
factory.clock.advanceTime(0.001);
return true;
},this)
// 复制动画
factory.copyAnimationsToArmature();//该方法废弃了
factory.replaceAnimation(warriorArm,elfArm.armatureData)
elfArm.animation.play("idle",0);
// warriorArm.animation.play("jump",0);
warriorArm.animation.play("idle",0);
}
private addDragonbonesDataToFactory(factory:dragonBones.EgretFactory,ResName:string){
factory.parseDragonBonesData(RES.getRes(ResName+"_ske_json"));
factory.parseTextureAtlasData(RES.getRes(ResName+"_tex_json"),RES.getRes(ResName+"_tex_png"));
}

浙公网安备 33010602011771号