我已经学习 Three.js 6 个小时并开始掌握新概念。我正在尝试访问场景内的对象,该页面上有两个 Canvas 和场景。
我有以下 HTML:
<div id="my-canvas">
<canvas width="....></canvas>
</div>
<div id="their-canvas">
<canvas width="....></canvas>
</div>
每个容器最终都会在内部生成一个 Canvas 并渲染一些立方体。
我这样命名每个场景:
scene = new THREE.Scene();
scene.name = sceneName;
sceneName
是一个包含场景名称的变量。当我 console.log
场景时,我可以看到场景属性具有正确的值。
在代码的后面,我想通过名称访问场景,但没有成功。正确的做法是什么?
var activeScene = THREE.Object3D.getElementByName(sceneName);
最佳答案
方法 .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;
关于javascript - 三.js通过名称访问场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316200/