PropertyMixer.saveOriginalState()
方法用于保存属性混合器的原始状态,以便在需要时能够恢复该状态。
mixer.clipAction(clip).play();
mixer.addEventListener('loop', onLoopFinished);
function onLoopFinished(event) {
if (event.action.loop === THREE.LoopOnce) {
mixer.saveOriginalState();
// do something else...
}
}
该方法不需要参数。
该方法没有返回值。
属性混合器是three.js中用来控制动画的重要组件之一。当我们在播放某个动画时,属性混合器会根据时间线逐渐混合属性,以此来实现动画效果。而在某些情况下,我们需要保存属性混合器的状态,以便在需要时能够恢复该状态。
PropertyMixer.saveOriginalState()
方法可以在属性混合器的状态发生变化之前保存其原始状态。这样,当需要恢复属性混合器的状态时,我们会使用 PropertyMixer.resetOriginalState()
方法来恢复原始状态。
下面的代码演示了如何使用 PropertyMixer.saveOriginalState()
方法来保存属性混合器的原始状态,并在需要时恢复该状态。
var mixer = new THREE.AnimationMixer( model );
var clip = THREE.AnimationClip.CreateFromMorphTargetSequence( 'myAnimation', geometry.morphTargets, 30 );
var action = mixer.clipAction( clip );
action.play();
setTimeout(function() {
mixer.saveOriginalState();
// do something else...
}, 5000);
setTimeout(function() {
mixer.resetOriginalState();
}, 10000);
在上述示例中,我们创建了一个属性混合器,并播放了一个动画。接着,我们在动画播放5秒后保存了属性混合器的原始状态,然后在10秒时恢复了该状态。这样,我们就可以在需要时方便地恢复属性混合器的状态了。