ModelAnimation

internal constructor new Cesium.ModelAnimation()

通过调用 ModelAnimationCollection#add 创建动画。不要直接调用构造函数。
从 glTF 资产派生的活动动画。活动动画是指 当前正在播放或由于被添加到模型的 ModelAnimationCollection 中而计划播放的动画。活动动画是动画的一个实例; 例如,同一个 glTF 动画可以有多个活动动画,每个都有不同的开始时间。
See:

Members

如果定义了此属性,它将用于计算本地动画时间, 而不是使用场景时间。
Default Value: undefined
ModelAnimation#startTime 到开始播放的延迟时间(以秒为单位)。
Default Value: undefined
确定动画是否循环播放以及如何循环播放。
Default Value: ModelAnimationLoop.NONE
大于 1.0 的值会相对于场景时钟速度增加动画播放速度; 小于 1.0 的值会减慢速度。1.0 的值会按照 glTF 动画中映射到场景时钟速度的速度播放动画。 例如,如果场景以 2 倍实时速度播放,一个两秒的 glTF 动画将在一秒内播放完毕,即使 multiplier1.0
Default Value: 1.0
标识此动画在模型中的名称(如果存在)。
true 时,动画停止播放后会被移除。 这比不移除它稍微更高效,但如果(例如)时间倒退,动画将不会再次播放。
Default Value: false
When true, the animation is played in reverse.
Default Value: false
当此动画开始播放时引发的事件。这可以用于 例如,在动画开始时播放声音或启动粒子系统。

此事件在场景渲染后的帧末尾引发。

Default Value: new Event()
Example:
animation.start.addEventListener(function(model, animation) {
  console.log(`Animation started: ${animation.name}`);
});
开始播放此动画的场景时间。当为 undefined 时, 动画将在下一帧开始播放。
Default Value: undefined
当此动画停止播放时引发的事件。这可以用于 例如,在动画停止时播放声音或启动粒子系统。

此事件在场景渲染后的帧末尾引发。

Default Value: new Event()
Example:
animation.stop.addEventListener(function(model, animation) {
  console.log(`Animation stopped: ${animation.name}`);
});
停止播放此动画的场景时间。当为 undefined 时, 动画将播放其完整时长,并可能根据 ModelAnimation#loop 重复播放。
Default Value: undefined
每帧更新此动画时引发的事件。当前动画时间(相对于 glTF 动画时间范围) 会传递给该事件,这允许例如在播放动画的特定时间启动新动画。

此事件在场景渲染后的帧末尾引发。

Default Value: new Event()
Example:
animation.update.addEventListener(function(model, animation, time) {
  console.log(`Animation updated: ${animation.name}. glTF animation time: ${time}`);
});

Type Definitions

Cesium.ModelAnimation.AnimationTimeCallback(duration, seconds)number

用于计算 ModelAnimation 本地动画时间的函数。
Name Type Description
duration number 动画的原始时长(以秒为单位)。
seconds number 动画开始后的秒数(场景时间)。
Returns:
返回本地动画时间。
Examples:
// 使用实时进行模型动画(假设 animateWhilePaused 设置为 true)
function animationTime(duration) {
    return Date.now() / 1000 / duration;
}
// 偏移动画的相位,使其在周期中途开始。
function animationTime(duration, seconds) {
    return seconds / duration + 0.5;
}
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.