OrbitControls在交互时自动旋转停止?

时间:2013-11-21 03:46:18

标签: three.js controls interactive autorotate

当鼠标交互时,如何使OrbitControls的自动旋转停止,几秒钟之后就像P3D一样启动。在这里使用他们的徽标(http://p3d.in/

2 个答案:

答案 0 :(得分:9)

对于谷歌搜索的人,如果你想在第一次互动后停止自动旋转;你可以在OrbitControls发出的3个事件之一上挂起一个事件监听器:

// stop autorotate after the first interaction
controls.addEventListener('start', function(){
  controls.autoRotate = false;
});

甚至更高级,在用户结束上次交互后重启自动旋转,超时为1000毫秒:

// stop autorotate after the first interaction
controls.addEventListener('start', function(){
  clearTimeout(autorotateTimeout);
  controls.autoRotate = false;
});

// restart autorotate after the last interaction & an idle time has passed
this.controls.addEventListener('end', function(){
  autorotateTimeout = setTimeout(function(){
    controls.autoRotate = true;
  }, 1000);
});

答案 1 :(得分:7)

controls.autoRotate = false;

只需在init上使用'true'启动它,然后在onMouseMove上执行以下操作:

if (controls.AutoRotate)
  controls.autoRotate = false;