Three.js按名称

时间:2017-07-26 02:02:08

标签: javascript jquery three.js

我进入Three.js需要6个小时才能掌握新概念。我试图访问一个场景内的对象,在一个页面上有两个画布&场景。

我有以下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是一个包含场景名称的变量。当我console.log场景时,我可以看到具有正确值的场景属性。

稍后在代码中我想按名称访问一个场景,但我还没有成功。什么是正确的方法?

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

1 个答案:

答案 0 :(得分: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;