麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - ModelAnimationCollection 中文文档

本文介绍下Cesium中 ModelAnimationCollection API的详细使用说明。

ModelAnimationCollection API 调用方法

new Cesium.ModelAnimationCollection()
模型动画的集合。使用 Model#activeAnimations进行访问。
参考:

成员变量

将动画添加到集合时触发的事件。例如,这可以用于保持UI同步。
Default Value: new Event()
示例:
model.activeAnimations.animationAdded.addEventListener(function(model, animation) {
  console.log('Animation added: ' + animation.name);
});
从集合中移除动画时引发的事件。例如,这可以用于保持UI同步。
Default Value: new Event()
示例:
model.activeAnimations.animationRemoved.addEventListener(function(model, animation) {
  console.log('Animation removed: ' + animation.name);
});
readonlylength : Number
集合中动画的数量。

内置方法

创建具有指定初始属性的动画并将其添加到集合中。

这将引发ModelAnimationCollection#animationAdded事件

Name Type Description
options Object 具有下列属性的对象:
Name Type Default Description
name String optional 标识动画的glTF动画名称。如果 options.index 是 undefined则此属性必须定义。
index Number optional 标识动画的glTF动画索引。如果 options.name 是 undefined则此属性必须定义。
startTime JulianDate optional 开始播放动画的场景时间。当这是undefined时,动画在下一帧开始。
delay Number 0.0 optionalstartTime到开始播放动画的延迟时间,以秒为单位。
stopTime JulianDate optional 停止播放动画的场景时间。 当它是undefined时, 动画将完整播放。
removeOnStop Boolean false optionaltrue时,动画在停止播放后被移除。
multiplier Number 1.0 optional 动画播放的速率。
reverse Boolean false optionaltrue时,动画反向播放。
loop ModelAnimationLoop ModelAnimationLoop.NONE optional 动画的循环模式。
返回值:
返回添加到集合中的动画。
异常情况:
示例:
// 例1:按名称添加动画
model.activeAnimations.add({
  name : 'animation name'
});
// 例2:按索引添加动画
model.activeAnimations.add({
  index : 0
});
// 例3:添加动画并提供所有属性和事件
var startTime = Cesium.JulianDate.now();
var animation = model.activeAnimations.add({
  name : 'another animation name',
  startTime : startTime,
  delay : 0.0,                          // 在startTime时播放 (默认的)
  stopTime : Cesium.JulianDate.addSeconds(startTime, 4.0, new Cesium.JulianDate()),
  removeOnStop : false,                 // 动画停止时不移除(默认的)
  multiplier : 2.0,                        // 2倍速播放
  reverse : true,                       // 反向播放
  loop : Cesium.ModelAnimationLoop.REPEAT      // 循环的动画
});
animation.start.addEventListener(function(model, animation) {
  console.log('Animation started: ' + animation.name);
});
animation.update.addEventListener(function(model, animation, time) {
  console.log('Animation updated: ' + animation.name + '. glTF animation time: ' + time);
});
animation.stop.addEventListener(function(model, animation) {
  console.log('Animation stopped: ' + animation.name);
});
为模型中的每个动画创建并将具有指定初始属性的动画添加到集合中。

这将引发每个模型的ModelAnimationCollection#animationAdded事件。

Name Type Description
options Object optional 具有下列属性的对象:
Name Type Default Description
startTime JulianDate optional 开始播放动画的场景时间。当这是undefined时,动画在下一帧开始。
delay Number 0.0 optionalstartTime到开始播放动画的延迟时间,以秒为单位。
stopTime JulianDate optional 停止播放动画的场景时间。当它是undefined时, 动画将完整播放。
removeOnStop Boolean false optionaltrue时,动画在停止播放后被移除。
multiplier Number 1.0 optional 动画播放的速率。
reverse Boolean false optionaltrue时,动画反向播放。
loop ModelAnimationLoop ModelAnimationLoop.NONE optional 动画的循环模式。
返回值:
ModelAnimation对象的数组,每个对象对应一个添加到集合中的动画。如果没有glTF动画,则数组为空。
异常情况:
示例:
model.activeAnimations.addAll({
  multiplier : 0.5,                        // 半速播放
  loop : Cesium.ModelAnimationLoop.REPEAT      // 循环的动画
});
contains(animation)Boolean
确定此集合是否包含给定的动画。
Name Type Description
animation ModelAnimation 要查找的动画。
返回值:
如果集合中包含该动画,返回true。
返回指定索引处的动画,此函数通常用于遍历集合中的所有动画。
Name Type Description
index Number 动画的索引。
返回值:
返回该索引处的动画。
示例:
// 输出集合中所有动画的名称。
var animations = model.activeAnimations;
var length = animations.length;
for (var i = 0; i < length; ++i) {
  console.log(animations.get(i).name);
}
remove(animation)Boolean
从集合中移除一个动画。

这将引发ModelAnimationCollection#animationremove事件。

通过将ModelAnimation#removeOnStop设置为true >,也可以隐式地从集合中删除动画, 当动画被移除时,ModelAnimationCollection#animationremove事件仍然被触发。

Name Type Description
animation ModelAnimation 将要被移除的动画。
返回值:
移除成功返回true,如果在集合中没有找到该动画返回false。
示例:
var a = model.activeAnimations.add({
  name : 'animation name'
});
model.activeAnimations.remove(a); // 返回true
从集合中移除所有动画。

这将为每个对象引发animationremove事件。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)