javascript - 三.js通过名称访问场景

标签 javascript jquery three.js

我已经学习 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/

相关文章:

javascript - d3.svg.line()错误: Uncaught TypeError: Cannot read property 'line' of undefined

javascript - isset/空 php session (if else 语句)给出 undefined index

javascript - 球体内的三个js视频位置

javascript - Three.js 场景中单个对象上的 UV 扭曲

javascript - 通过滚动使固定工具提示消失

JavaScript 文件随机损坏?

jQuery:选择具有某些属性集的所有 p 元素

javascript - 在 View 中激活 javascript 动画

javascript - three.js - 用于 ipad 的管几何结构上的 Canvas 纹理

javascript - 通过显示关闭当前 div 的元素切换 div 的可见性