Access a model's animations
A collection of active model animations.
Model#activeAnimations
. Do not call the constructor directly
成员(属性)
When true, the animation will play even when the scene time is paused. However,
whether animation takes place will depend on the animationTime functions assigned
to the model's animations. By default, this is based on scene time, so models using
the default will not animate regardless of this setting.
-
默认值:
false
animationAdded : Event
The event fired when an animation is added to the collection. This can be used, for
example, to keep a UI in sync.
-
默认值:
new Event()
使用示例:
model.activeAnimations.animationAdded.addEventListener(function(model, animation) {
console.log(`Animation added: ${animation.name}`);
});
animationRemoved : Event
The event fired when an animation is removed from the collection. This can be used, for
example, to keep a UI in sync.
-
默认值:
new Event()
使用示例:
model.activeAnimations.animationRemoved.addEventListener(function(model, animation) {
console.log(`Animation removed: ${animation.name}`);
});
The number of animations in the collection.
readonly model : Model
The model that owns this animation collection.
方法
Creates and adds an animation with the specified initial properties to the collection.
This raises the ModelAnimationCollection#animationAdded
event so, for example, a UI can stay in sync.
参数名称 | 类型 | 描述信息 | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
Object with the following properties:
|
返回值:
The animation that was added to the collection.
Throws:
-
DeveloperError : Animations are not loaded. Wait for the
Model#ready
to return trues. -
DeveloperError : options.name must be a valid animation name.
-
DeveloperError : options.index must be a valid animation index.
-
DeveloperError : Either options.name or options.index must be defined.
-
DeveloperError : options.multiplier must be greater than zero.
使用示例s:
// 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}`);
});
addAll(options) → Array.<ModelAnimation>
Creates and adds animations with the specified initial properties to the collection
for all animations in the model.
This raises the ModelAnimationCollection#animationAdded
event for each model so, for example, a UI can stay in sync.
参数名称 | 类型 | 描述信息 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
可选
Object with the following properties:
|
返回值:
An array of
ModelAnimation
objects, one for each animation added to the collection. If there are no glTF animations, the array is empty.
Throws:
-
DeveloperError : Animations are not loaded. Wait for the
Model#ready
to return true. -
DeveloperError : options.multiplier must be greater than zero.
使用示例:
model.activeAnimations.addAll({
multiplier : 0.5, // Play at half-speed
loop : Cesium.ModelAnimationLoop.REPEAT // Loop the animations
});
Determines whether this collection contains a given animation.
参数名称 | 类型 | 描述信息 |
---|---|---|
runtimeAnimation |
ModelAnimation | The runtime animation to check for. |
返回值:
true
if this collection contains the animation, false
otherwise.
Returns the animation in the collection at the specified index. Indices are zero-based
and increase as animations are added. Removing an animation shifts all animations after
it to the left, changing their indices. This function is commonly used to iterate over
all the animations in the collection.
参数名称 | 类型 | 描述信息 |
---|---|---|
index |
number | The zero-based index of the animation. |
返回值:
The runtime animation at the specified index.
使用示例:
// 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);
}
Removes an animation from the collection.
This raises the ModelAnimationCollection#animationRemoved
event so, for example, a UI can stay in sync.
An animation can also be implicitly removed from the collection by setting ModelAnimationCollection#removeOnStop
to
true
. The ModelAnimationCollection#animationRemoved
event is still fired when the animation is removed.
参数名称 | 类型 | 描述信息 |
---|---|---|
runtimeAnimation |
ModelAnimation | The runtime animation to remove. |
返回值:
true
if the animation was removed; false
if the animation was not found in the collection.
使用示例:
const a = model.activeAnimations.add({
name : 'animation name'
});
model.activeAnimations.remove(a); // Returns true
Removes all animations from the collection.
This raises the ModelAnimationCollection#animationRemoved
event for each
animation so, for example, a UI can stay in sync.