Я разрабатываю веб-систему с использованием трех. js.
Когда я пытаюсь использовать класс OrbitControls, он не работает, и у меня есть код ошибки, как показано ниже.
Может ли кто-нибудь помочь решить это дело?
Заранее спасибо.
код ошибки
Uncaught TypeError: Cannot read property 'addEventListener' of undefined
at new THREE.OrbitControls (OrbitControls.js:1100)
at init (main.js:24)
код HTML
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1,">
<meta name="description" content="">
<meta name="author" content="">
<title>threejs Test</title>
<!-- my_css -->
<link rel="stylesheet" type="text/css" href="/static/css/mystyle.css">
</head>
<body>
<h1>test</h1>
<div class="canvas_wrapper">
<canvas id="myCanvas"></canvas>
</div>
<!-- three.js_js -->
<script src="static/js/three.min.js"></script>
<script src="static/js/OrbitControls.js"></script>
<!-- my_js -->
<script src="static/js/main.js"></script>
</body>
</html>
код js
window.addEventListener('load', init);
function init() {
const width = 960;
const height = 540;
const renderer = new THREE.WebGLRenderer({
canvas: document.querySelector('#myCanvas')
});
renderer.setSize(width, height);
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(45, width / height);
camera.position.set(0, 0, 1000);
const controls = new THREE.OrbitControls(camera);
const mesh = new THREE.Mesh(
new THREE.BoxGeometry(300, 300, 300),
new THREE.MeshNormalMaterial()
);
scene.add(mesh);
tick();
function tick() {
renderer.render(scene, camera);
requestAnimationFrame(tick);
}
}
версия: три. js r116