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

n2g*_*1q1 6 controls interactive autorotate three.js

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

pol*_*ick 9

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

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

或者甚至更高级,在用户结束最后一次交互后重启自动旋转,超时为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);
});
Run Code Online (Sandbox Code Playgroud)


小智 7

controls.autoRotate = false;
Run Code Online (Sandbox Code Playgroud)

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

if (controls.AutoRotate)
  controls.autoRotate = false;
Run Code Online (Sandbox Code Playgroud)