Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 仅在滚动或移动鼠标时渲染才起作用_Three.js - Fatal编程技术网

Three.js 仅在滚动或移动鼠标时渲染才起作用

Three.js 仅在滚动或移动鼠标时渲染才起作用,three.js,Three.js,我有一个大问题,让我的动画工作,没有任何动画在现场,除非我环顾四周与我的鼠标。我一停止环顾四周,动画就停止了。我尝试了很多事情,却不知道我做错了什么 function onMouseMove(e) { mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1; mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1; } window.addEventLi

我有一个大问题,让我的动画工作,没有任何动画在现场,除非我环顾四周与我的鼠标。我一停止环顾四周,动画就停止了。我尝试了很多事情,却不知道我做错了什么

function onMouseMove(e) {
    mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
    mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}    

window.addEventListener( "mousemove", onMouseMove, false );
window.requestAnimationFrame(render);


function animate(){
    controls.update();
    renderer.render(scene, camera);
    requestAnimationFrame(animate);
}

function render(){

    sunArray[1].rotation.y += 0.01;
renderer.render(scene, camera);
};

您需要使其反复调用requestAnimation frame:

window.requestAnimationFrame(render);

应该可以

我已经有了,如果你是说在动画功能中,它只会使整个浏览器冻结。在你发布的代码片段中,你没有这个功能。如果您仍然有问题,请尝试将其设置为JSFIDDLE。通过这样做,您现在有两个渲染器调用,这是不必要的。您只想添加到动画函数中的是sunArray[1]。rotation.y+=0.01;而不是渲染;改变了,谢谢,我不知道。更改为您的解决方案。
function animate(){
 sunArray[1].rotation.y += 0.01;
    controls.update();
    renderer.render(scene, camera);
    requestAnimationFrame(animate);
}

function render(){
renderer.render(scene, camera);
};