2017-07-26 4 views
0

私はThree.jsに6時間あり、新しいコンセプトをつかんでいます。私はシーン内のオブジェクトにアクセスしようとしています、2つのキャンバス&シーンのページにあります。これらのコンテナのThree.jsアクセスシーンの名前で

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

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

それぞれが内部で生成されたキャンバスとレンダリングいくつかのキューブで終わる:

は、私は、次のHTMLを持っています。

私はこのように、各シーンに名前を付ける:

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

sceneNameは、シーンの名前を含む変数です。シーンがconsole.logの場面で正しい値を持つシーンプロパティを見ることができます。

コードの後に​​、その名前でシーンにアクセスしたいが、私は成功していない。正しい方法は何ですか?

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; 
関連する問題