Three.js:无法在onLoad函数中更改布尔值

时间:2017-07-28 14:14:32

标签: javascript three.js boolean

我正在使用Three.js Loading Manager来启动和停止我的requestionAnimationFrame动画循环。我有这个:

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函数似乎未将onLoad设置为true,因为动画循环无法启动。我在这做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:1)

需要制作OBJLoader的对象

var loader = new THREE.OBJLoader( loadingManager );

然后你需要调用加载函数

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

参考此three.js doc