THREE.js OrbitControls不起作用。

3

我相信我的JavaScript代码已经具备了使用Three.js OrbitControls所需的一切。我已经:

<script>"OrbitControls.js"></script>

并且:
var cameraControls;
cameraControls = new THREE.OrbitControls(camera, renderer.domElement);

“它”没有抱怨,但我的错误提示是:“未捕获的类型错误:无法读取未定义的属性‘LEFT’(21:20:28:855 | error, javascript)在public_html/OrbitControls.js:76”,这指的是OrbitControls文档中的位置。
this.mouseButtons = { ORBIT: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT };

我不知道如何修复它,任何帮助都会非常感激!!

2
THREE.MOUSE 是在哪里定义的? - ryanpcmcquen
1个回答

2

就像 @ryanpcmcquen 在评论中建议的那样,您缺少 THREE.MOUSE 对象。您还应该加载 three.js 库以使其正常工作。

THREE.MOUSE 对象在 three.js 库的核心中定义于此处

THREE.MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 };

更新

请确保您已经加载了一个带有THREE.MOUSE对象定义的库的构建版本。我建议您从http://threejs.org/网站下载它。

这两个文件都包含THREE.MOUSE对象。


注意:还要考虑正确的库加载顺序。在加载OrbitControls.js脚本之前,您必须先包含three.js脚本。


谢谢你的回答。实际上,我已经在我的项目中使用了three.js库,但是出于某种原因,我无法在其中找到THREE.MOUSE,所以我想我必须自己添加它... - sheavictoria
@sheavictoria,你从哪里下载了three.js库?我建议你从http://threejs.org/网站下载。完整版本请点击这里,压缩版本请点击这里。这两个文件都有一个MOUSE对象。 - Wilt
@sheavictoria 还要考虑脚本的加载顺序。请查看我的更新答案。 - Wilt
是的,我看到我确实有第58个版本,而不是当前的版本,这就是问题所在,现在它正在工作!非常感谢! - sheavictoria

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接