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');