AnimationAction如何在最后一帧停止而不在three.js中循环?

AnimationAction如何在最后一帧停止而不在three.js中循环?,animation,three.js,morphing,Animation,Three.js,Morphing,我想在使用变形目标创建的最后一帧停止动画动作 我试过animationAction.clampWhenFinished=true但这似乎不起作用 我已经研究了一些老问题并进行了搜索,但解决方案没有奏效 var cubeTarget1 = new THREE.BoxGeometry(20, 10, 10); var cubeTarget2 = new THREE.BoxGeometry(20, 10, 50); var cubeTarget3 = new THREE.BoxGeometry(60

我想在使用变形目标创建的最后一帧停止动画动作

我试过
animationAction.clampWhenFinished=true但这似乎不起作用

我已经研究了一些老问题并进行了搜索,但解决方案没有奏效

var cubeTarget1 = new THREE.BoxGeometry(20, 10, 10);
var cubeTarget2 = new THREE.BoxGeometry(20, 10, 50);
var cubeTarget3 = new THREE.BoxGeometry(60, 10, 10);

cubeGeometry.morphTargets[0] = {name: 't1', vertices: cubeTarget1.vertices};
cubeGeometry.morphTargets[1] = {name: 't2', vertices: cubeTarget2.vertices};
cubeGeometry.morphTargets[2] = {name: 't3', vertices: cubeTarget3.vertices};
有没有一种方法我可以这样做:(这不起作用,它会循环回第一个目标)

这是我的小提琴:

我查看了three.js代码。一旦涉及clampWhenFinished的部分完成,就不会被击中

目前,我将以一种非常粗糙的方式进行,直到找到更好的解决方案:

action.setDuration(5).play(); 
setTimeout(function()
{
    action.paused = true;
},2500); // half of the duration
我一直在做的另一种方法是使用morphTargetInfluences并在动画循环中增加它:

function animate() {
  if (cube.morphTargetInfluences[0] < 1)
    cube.morphTargetInfluences[0] += 0.01;

  controls.update();
  renderer.render(scene, camera);
  requestAnimationFrame(animate);
}
function animate(){
if(多维数据集morphTargetInfluences[0]<1)
cube.MorphTargetFluence[0]+=0.01;
控件更新();
渲染器。渲染(场景、摄影机);
请求动画帧(动画);
}

如果需要更多功能,请使用Tween.js。

我查看了three.js代码。一旦涉及clampWhenFinished的部分完成,就不会被击中

目前,我将以一种非常粗糙的方式进行,直到找到更好的解决方案:

action.setDuration(5).play(); 
setTimeout(function()
{
    action.paused = true;
},2500); // half of the duration
我一直在做的另一种方法是使用morphTargetInfluences并在动画循环中增加它:

function animate() {
  if (cube.morphTargetInfluences[0] < 1)
    cube.morphTargetInfluences[0] += 0.01;

  controls.update();
  renderer.render(scene, camera);
  requestAnimationFrame(animate);
}
function animate(){
if(多维数据集morphTargetInfluences[0]<1)
cube.MorphTargetFluence[0]+=0.01;
控件更新();
渲染器。渲染(场景、摄影机);
请求动画帧(动画);
}
如果需要更多功能,请使用Tween.js