如何使用three.js loader.load函数隐藏场景中的json对象?

时间:2016-10-26 15:58:22

标签: javascript json three.js loader

我有很多json文件,我使用loader.load使用three.js加载。当我点击与json文件名对应的文本内容时,它们会显示出来。

如何通过第二次点击卸载或隐藏对象?

这是我的代码:

document.getElementById("dest").getElementsByTagName("span").onclick = function(element, key) {myFunction()};
    function myFunction() {
        document.getElementById("dest").getElementsByTagName("span").height = "100%";
        var t = event.target.textContent;
        var a = t.slice(1,t.length-1);
        path = 'examples/brain_parts/' + groupNames[a] + '.json';

                loader.load( path, 
                        function ( geometry, materials, data ) {
                        var material = new THREE.MultiMaterial( materials );
                        var object = new THREE.Mesh( geometry, material );
                        object.scale.set(5,5,5);
                        object.position.set( 0, 0, 0 );
                        scene.add( object );
                        render();

                })

    }

1 个答案:

答案 0 :(得分:0)

var a = t.slice(1,t.length-1);
var objName = "groupNames" + a;

然后遍历场景,寻找具有等于objName值的属性“name”的对象。或者你可以做到

var obj = scene.getObjectByName( objName );

如果您找到了一个然后将其删除,如果您没找到,请致电

loader.load(...
    var object = new THREE.Mesh( geometry, material );
    object.name = objName;
    ...
);