Members
如果为 true,即使场景时间暂停,动画也会播放。但是,动画是否发生取决于分配给模型动画的 animationTime 函数。默认情况下,这是基于场景时间的,因此无论此设置如何,使用默认设置的模型都不会设置动画。
false
将动画添加到集合时触发的事件。例如,这可用于保持 UI 同步。
new Event()
Example:
model.activeAnimations.animationAdded.addEventListener(function(model, animation) {
console.log(`Animation added: ${animation.name}`);
});
从集合中移除动画时触发的事件。例如,这可用于保持 UI 同步。
new Event()
Example:
model.activeAnimations.animationRemoved.addEventListener(function(model, animation) {
console.log(`Animation removed: ${animation.name}`);
});
集合中的动画数量。
Methods
Name
|
Type
|
Description
|
options
|
Object
|
具有以下属性的对象:
姓名
|
类型
|
默认
|
描述
|
name
|
细绳
|
|
可选
标识动画的 glTF 动画名称。如果
options.index
undefined
,则必须定义。
|
index
|
数字
|
|
可选
标识动画的 glTF 动画索引。如果
options.name
undefined
,则必须定义。
|
startTime
|
朱利安日期
|
|
可选
开始播放动画的场景时间。当这是
undefined
时,动画从下一帧开始。
|
delay
|
数字
|
0.0
|
可选
从
startTime
到开始播放的延迟,以秒为单位。
|
stopTime
|
朱利安日期
|
|
可选
停止播放动画的场景时间。当这是
undefined
时,动画将播放完整的持续时间。
|
removeOnStop
|
布尔值
|
false
|
可选
当为
true
时,动画在停止播放后被移除。
|
multiplier
|
数字
|
1.0
|
可选
大于
1.0
的值会增加动画相对于场景时钟速度的播放速度;小于
1.0
的值会降低速度。
|
reverse
|
布尔值
|
false
|
可选
当
true
时,动画反向播放。
|
loop
|
模型动画循环
|
ModelAnimationLoop.NONE
|
可选
确定动画是否循环以及如何循环。
|
animationTime
|
ModelAnimation.AnimationTimeCallback
|
|
可选
如果已定义,则计算此动画的本地动画时间。
|
|
Returns:
添加到集合中的动画。
Throws:
Examples:
// Example 1. Add an animation by name
model.activeAnimations.add({
name : 'animation name'
});
// Example 2. Add an animation by index
model.activeAnimations.add({
index : 0
});
// Example 3. Add an animation and provide all properties and events
const startTime = Cesium.JulianDate.now();
const animation = model.activeAnimations.add({
name : 'another animation name',
startTime : startTime,
delay : 0.0, // Play at startTime (default)
stopTime : Cesium.JulianDate.addSeconds(startTime, 4.0, new Cesium.JulianDate()),
removeOnStop : false, // Do not remove when animation stops (default)
multiplier : 2.0, // Play at double speed
reverse : true, // Play in reverse
loop : Cesium.ModelAnimationLoop.REPEAT // Loop the animation
});
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}`);
});
Name
|
Type
|
Description
|
options
|
Object
|
具有以下属性的
可选
对象:
姓名
|
类型
|
默认
|
描述
|
startTime
|
朱利安日期
|
|
可选
开始播放动画的场景时间。当这是
undefined
时,动画从下一帧开始。
|
delay
|
数字
|
0.0
|
可选
从
startTime
到开始播放的延迟,以秒为单位。
|
stopTime
|
朱利安日期
|
|
可选
停止播放动画的场景时间。当这是
undefined
时,动画将播放完整的持续时间。
|
removeOnStop
|
布尔值
|
false
|
可选
当为
true
时,动画在停止播放后被移除。
|
multiplier
|
数字
|
1.0
|
可选
大于
1.0
的值会增加动画相对于场景时钟速度的播放速度;小于
1.0
的值会降低速度。
|
reverse
|
布尔值
|
false
|
可选
当
true
时,动画反向播放。
|
loop
|
模型动画循环
|
ModelAnimationLoop.NONE
|
可选
确定动画是否循环以及如何循环。
|
animationTime
|
ModelAnimation.AnimationTimeCallback
|
|
可选
如果定义,计算所有动画的本地动画时间。
|
|
Returns:
Throws:
Example:
model.activeAnimations.addAll({
multiplier : 0.5, // Play at half-speed
loop : Cesium.ModelAnimationLoop.REPEAT // Loop the animations
});
确定此集合是否包含给定动画。
Returns:
如果此集合包含动画,则为
true
,否则为
false
。
返回集合中指定索引处的动画。索引从零开始,并随着动画的添加而增加。删除动画会将其后的所有动画向左移动,从而更改它们的索引。此函数通常用于迭代集合中的所有动画。
Name
|
Type
|
Description
|
index
|
Number
|
动画的从零开始的索引。
|
Returns:
指定索引处的动画。
Example:
// Output the names of all the animations in the collection.
const animations = model.activeAnimations;
const length = animations.length;
for (let i = 0; i < length; ++i) {
console.log(animations.get(i).name);
}
Returns:
如果动画被删除,则为
true
;如果在集合中找不到动画,则
false
。
Example:
const a = model.activeAnimations.add({
name : 'animation name'
});
model.activeAnimations.remove(a); // Returns true