我进入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);
答案 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;