ModelAnimationCollection
是Cesium
的一个类,用于管理模型动画。
length
类型:Number
描述:集合中所包含的动画数量。
contains(id)
参数:
id
: {String}
- 动画的id。返回值:Boolean
- 如果集合中包含给定id的动画,则返回true,否则返回false。
描述:检查集合中是否包含给定id的动画。
get(id)
参数:
id
: {String}
- 动画的id。返回值:ModelAnimation
- 给定id的动画对象,如果找不到则返回undefined
。
描述:获取给定id的动画对象。
add(animation)
参数:
animation
: {ModelAnimation}
- 要添加到集合中的动画。描述:将给定的动画添加到集合中。如果集合中已有相同id的动画,则覆盖该动画。
remove(id)
参数:
id
: {String}
- 要从集合中删除的动画的id。描述:从集合中删除给定id的动画。
removeAll()
描述:从集合中删除所有动画。
getAnimations(id)
参数:
id
: {String}
- 要获取动画的模型id。返回值:Array.<ModelAnimation>
- 同一模型下的所有动画对象。
描述:获取给定模型id下的所有动画对象。
update(time, loop)
参数:
time
: {Number}
- 动画的时间戳,以秒为单位。loop
: {Boolean}
- 是否循环播放动画。描述:更新所有动画的当前帧。如果loop
为true
,则在动画播放完最后一帧后循环播放。
// 加载模型
let model = viewer.scene.primitives.add(Cesium.Model.fromGltf({
id: 'myModel',
url: 'models/CesiumAir/Cesium_Air.glb'
}));
// 获取动画集合
let animations = model.animations;
// 获取给定id的动画对象
let myAnimation = animations.get('animation_0');
// 添加动画
animations.add(myAnimation);
// 删除动画
animations.remove('animation_1');
// 更新所有动画
animations.update((new Date()).getTime() / 1000, true);
// 获取同一模型下的所有动画对象
let myAnimations = animations.getAnimations('myModel');