2017-07-28 103 views
0

我正在使用Three.js加载管理器来启动和停止我的requestionAnimationFrame动画循环。我有这样的:Three.js:无法更改onLoad函数中的布尔值

var loadingManager = new THREE.LoadingManager(); 
var isLoaded = new Boolean(); 

    loadingManager.onLoad = function() { 
     isLoaded = true; 
    }; 

    function startAnimationLoop() { 
     if (!runAnimation) { 
     runAnimation= animationDisplay.requestAnimationFrame(animate); 
     } 
    } 

    function stopAnimationLoop() { 
     if (runAnimation) { 
     animationDisplay.cancelAnimationFrame(runAnimation); 
     runAnimation= undefined; 
     } 
    } 

而且这是在渲染循环:

if (isLoaded == true) { 
    startAnimationLoop(); //not working 
} else if (isLoaded == false) { 
    stopAnimationLoop(); 
} 

看来isLoaded尚未设置为true在onLoad功能动画循环不启动。我在这里做错了什么?提前致谢。

回答

1

需要做的,然后OBJLoader

var loader = new THREE.OBJLoader(loadingManager); 

对象,你需要调用加载功能

loader.load('loadingManager', function (object) { } 

请参阅本three.js doc

+0

我有这个了,我没有包含它,因为它不涉及我的问题。 –

+0

如果onload正在工作,请在onload中加入警报以查看, – Anil

+0

是的,它工作。 –