2016-10-26 2 views
0

私は、loader.loadでロードするjsonファイルをthree.jsを使ってたくさん持っています。 jsonファイル名に対応するテキストコンテンツをクリックすると表示されます。three.js loader.load関数を使用してシーンのjsonオブジェクトを非表示にするにはどうすればよいですか?

2回目のクリックでオブジェクトをアンロードまたは非表示にするにはどうすればよいですか?ここで

私のコードです:

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(); 

       }) 

    } 
+0

ようこそを呼び出す見つからなかった場合は、1つは、その後、それを削除した場合、または、あなたは

var obj = scene.getObjectByName(objName); 

を行うことができます!あなたが言及したコードを含めるのを忘れてしまったようですが、質問を編集して追加する必要があります。 –

答えて

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

その後、objNameに値に等しいattibute「name」を持つオブジェクトを探して、シーンを横断します。あなたはそれがその後、スタックオーバーフローに

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

var obj = scene.getObjectByName(objName)は定義されていません。 – maria

+0

@mariaあなたはvar obj = scene.getObjectByName(objName、true);を再帰的に行うことができます。 – prisoner849

+0

@maria場合(OBJ){表示/非表示}他{loader.load()} – prisoner849

関連する問題