龙骨动画学习八:同名骨骼之间的动画拷贝

在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"));
    }

  

 

posted on 2021-08-26 17:48  谋生的日记本  阅读(363)  评论(0)    收藏  举报

导航