AnimationAction.setEffectiveTimeScale()
是Three.js中一个用于设置动画时间比例的方法。它可以使用一个 timeScale
参数来改变动画的播放速度。
animationAction.setEffectiveTimeScale(timeScale);
timeScale
:一个数字,表示相对于动画原始速度的播放速度比例。如果 timeScale
为 2,则表示动画将以双倍速度播放;如果为 0.5,则表示动画将以半个原始速度播放。const mixer = new THREE.AnimationMixer( mesh );
const clip = THREE.AnimationClip.CreateFromMorphTargetSequence( 'morph', geometry.morphAttributes.position, 30 );
const animationAction = mixer.clipAction( clip );
// 播放动画
animationAction.play();
// 将动画速度设置为原来的 2 倍
animationAction.setEffectiveTimeScale( 2 );
在这个示例中,通过 animationAction.play()
方法可以播放动画。然后使用 animationAction.setEffectiveTimeScale()
方法将动画速度设置为原来的 2 倍。
setEffectiveTimeScale()
方法只能在动画播放之前或者播放过程中设置,在动画停止后设置没有效果。setEffectiveTimeScale()
方法设置了时间比例,还可以使用 AnimationMixer.timeScale
属性来全局控制时间比例。当这两者都设置时,AnimationAction.setEffectiveTimeScale()
的优先级更高,会覆盖 AnimationMixer.timeScale
的值。