龙骨动画学习五:控制动画速度

在实际项目中,有时需要动态改变动画的播放速度。Dragonbones提供了集中方式:

1、调节世界时钟

        //调节世界时钟
        factory2.clock.timeScale = 5;

  

2、调节动画的速度

armatureDisplay2.animation.timeScale = 3;

 

3、调节某个动作的速度

armatureDisplay2.animation.play("run4",0).timeScale = 5;

 

完整demo代码

    // 创建多个龙骨动画--- 多个动画工厂
    private createDragonbonesAnimations2(){
        let factory1:dragonBones.EgretFactory = new dragonBones.EgretFactory();
        let factory2:dragonBones.EgretFactory = new dragonBones.EgretFactory();
        
        

        this.addDragonbonesDataToFactory(factory1,"Dragon");
        this.addDragonbonesDataToFactory(factory2,"theElf");

        let armatureDisplay1:dragonBones.EgretArmatureDisplay = factory1.buildArmatureDisplay("Dragon");
        armatureDisplay1.x = 300;
        armatureDisplay1.y = 400;
        this.addChild(armatureDisplay1);
        armatureDisplay1.animation.play("stand",0);

        let armatureDisplay2:dragonBones.EgretArmatureDisplay = factory2.buildArmatureDisplay("elf");
        armatureDisplay2.x = 500;
        armatureDisplay2.y = 400;
        this.addChild(armatureDisplay2);
        armatureDisplay2.animation.timeScale = 3;

        armatureDisplay2.animation.play("run4",0).timeScale = 5;;
        //调节世界时钟
        factory2.clock.timeScale = 5;

        //注意本案例中 虽然是两个工厂对象,但是他们的clock是同一个
        console.log( factory1.clock == factory2.clock);//true
        
    }

  

   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 15:41  谋生的日记本  阅读(437)  评论(0)    收藏  举报

导航