1、AnimationMixer是用于播放场景中特定对象上的动画的播放器。当场景中的多个对象独立动画时,每个对象可以使用一个AnimationMixer;
2、AnimationClip是一组可重用的关键帧轨迹,它们代表动画。
3、AnimationActions计划存储在AnimationClips中的动画的性能 ,下面介绍其相关属性:
(1)、clipWhenFinished :布尔值
如果clipWhenFinished设置为true,则动画将自动 在最后一帧暂停。
如果clampWhenFinished设置为false,则在操作的最后一个循环完成时,enable将自动切换为false,这样该操作就不会有 进 一步的影响。
循环模式(可以使用setLoop更改)。默认值为 THREE.LoopRepeat(重复次数不限)
必须为以下常量之一:
THREE.LoopOnce-播放剪辑一次,
THREE.LoopRepeat-播放具有选择的重复次数剪辑,每次从末尾跳将剪辑直接播放到其开头
THREE.LoopPingPong-以选定的重复次数播放剪辑,并交替向前和向后播放。
(3)、paused : Boolean
在此操作过程中,执行的AnimationClip的重复次数。可以通过setLoop设置。默认值为Infinity。
如果将循环模式设置为 THREE.LoopOnce,则设置此数字无效。
4、下面通过代码的方式来体现动画的播放:
Viewer.mixerOff = new THREE.AnimationMixer( Viewer.curtainGroup.children[0] );
actionOff = Viewer.mixerOff.clipAction( Viewer.curtainGroup.children[0].animations[0] );
actionOff.setLoop(THREE.LoopOnce);
actionOff.play();
5、动画的事件监听
Viewer.mixerOff.addEventListener( 'loop', function( e ) { …} ); // 监听事件循环播放的次数
Viewer.mixerOff.addEventListener( 'finished', function( e ) { …} ); // 监听动画是否播放完成