Three.js Progress Loader在模型加载时不隐藏

时间:2014-11-30 00:29:59

标签: javascript three.js

我有一个基于this示例的页面,并使用webgl_material_bumpmap示例中的相关行来实现加载进度Dom Element。

该页面是(暂时)here。如果我在下面提供的信息不足,请参阅此页面的来源。

我的问题是加载模型时加载文本块不会消失。 我用它来表明:

function installModel(file) { 
    if (model) {**strong text**
        scene.remove(model);
        }
        render();
        var loader = new THREE.JSONLoader(true);
    loader.load("obj/" + file, modelLoadedCallback);
        document.body.appendChild( loader.statusDomElement );
        }

init函数(没有错误处理的东西)是

   scene = new THREE.Scene();
    camera = new THREE.PerspectiveCamera(50, theCanvas.width/theCanvas.height, 0.1, 100);
    camera.position.z = 30;
    camera.lookAt( scene.position );
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.damping = 0.3;
controls.addEventListener( 'change', render );
    createWorld();
    installModel("room1.json");
    render();

loader.statusDomElement.style.display = "none";

 }

为什么加载文字仍然可见?

2 个答案:

答案 0 :(得分:1)

您可能需要添加:

loader.statusDomElement.style.display = "none";
打印到控制台后,在回调函数modelLoadedCallback()

答案 1 :(得分:0)

我解决了这个问题。 我不得不添加另一个名为" prog"的div元素。 那么

var show
     function show() {
       document.getElementById("prog").style.display = "inline";
        }

var loader = new THREE.JSONLoader(true);
    document.getElementById("prog").appendChild(loader.statusDomElement );
    loader.load("obj/" + file, modelLoadedCallback);