2017-07-26 73 views
0

我進入Three.js6個小時,即將掌握新概念。我試圖訪問一個場景中的對象,在一個頁面上使用兩個畫布&場景。Three.js按名稱訪問場景

我有以下HTML:

這些容器的
<div id="my-canvas"> 
    <canvas width="....></canvas> 
</div> 

<div id="their-canvas"> 
    <canvas width="....></canvas> 
</div> 

每次用內部產生的畫布和呈現一些立方體結束。

我命名每個場景是這樣的:

scene = new THREE.Scene(); 
    scene.name = sceneName; 

sceneName是包含場景的名稱的變量。我可以在場景中看到具有正確值的場景屬性。

後來在代碼中我想通過它的名字來訪問一個場景,但是我沒有成功。什麼是正確的方法?

var activeScene = THREE.Object3D.getElementByName(sceneName); 

回答

1

方法.getElementByName不是three.js方法。
.getObjectByName方法存在於three.js中,但它不適用於您的情況,因爲它會循環場景中的對象(場景是頂級對象)。

解決方案:爲每個場景聲明一個不同的變量。然後通過變量名訪問每個場景。

例如:

var my_scene = new THREE.Scene(); 
var their_scene = new THREE.Scene(); 

// assign to another variable 
var activeScene = their_scene; 
// and later 
activeScene = my_scene;