龙骨动画学习五:控制动画速度
在实际项目中,有时需要动态改变动画的播放速度。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"));
}
浙公网安备 33010602011771号