Javascript Three.js+;OrbitControls-未捕获类型错误:无法读取属性';增补列表器';未定义的
我试图在THREE.js中使用Javascript Three.js+;OrbitControls-未捕获类型错误:无法读取属性';增补列表器';未定义的,javascript,three.js,computer-vision,rendering,render,Javascript,Three.js,Computer Vision,Rendering,Render,我试图在THREE.js中使用OrbitControls。如果我从下面删除了行let cameraControl=new OrbitControls(camera),则不会出现错误。但现在,我有了“未捕获的TypeError:无法读取未定义的属性'addEventListener'” 我试图将OrbitControls(camera)更改为THREE.OrbitControls(camera),然后出现了“未捕获类型错误:THREE.OrbitControls不是构造函数” 我试图通过使用外部“
OrbitControls
。如果我从下面删除了行let cameraControl=new OrbitControls(camera)
,则不会出现错误。但现在,我有了“未捕获的TypeError:无法读取未定义的属性'addEventListener'”
我试图将OrbitControls(camera)
更改为THREE.OrbitControls(camera)
,然后出现了“未捕获类型错误:THREE.OrbitControls不是构造函数”
我试图通过使用
外部“模块”
导入OrbitControls.js
,而不是从…导入{OrbitControls}代码>,但它不起作用,我还尝试将让cameraControl=new OrbitControls(camera)
移动到其他行,但也不起作用
有没有办法解决这个问题
<body>
<script type="module">
import * as THREE from 'https://threejsfundamentals.org/threejs/resources/threejs/r115/build/three.module.js';
import {OrbitControls} from 'https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/controls/OrbitControls.js';
let scene, renderer, camera
let cube
function init() {
scene = new THREE.Scene()
renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)
camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 100)
let cameraControl = new OrbitControls(camera)
camera.position.set(10, 10, 10)
camera.lookAt(scene.position)
// cube
cube = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1))
scene.add(cube)
}
function render() {
requestAnimationFrame(render)
renderer.render(scene, camera)
}
init()
render()
</script>
</body>
将*作为三个源导入'https://threejsfundamentals.org/threejs/resources/threejs/r115/build/three.module.js';
从导入{OrbitControls}https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/controls/OrbitControls.js';
让场景、渲染器、摄影机
让立方体
函数init(){
场景=新的三个。场景()
renderer=new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth、window.innerHeight)
document.body.appendChild(renderer.doElement)
摄像头=新的三个透视摄像头(60,window.innerWidth/window.innerHeight,0.1100)
让cameraControl=新的轨道控制(摄影机)
摄像机。位置。设置(10,10,10)
摄影机。注视(场景。位置)
//立方体
立方体=新的3.Mesh(新的3.BoxGeometry(1,1,1))
场景.添加(立方体)
}
函数render(){
requestAnimationFrame(渲染)
渲染器。渲染(场景、摄影机)
}
init()
render()
让cameraControl=新的轨道控制(摄影机)
始终按如下方式创建控件:
let cameraControl=新的轨道控件(camera、renderer.doElement);
第二个参数现在是必需的