Reputation: 29
I'm trying to add OrbitControls in my three.js project, but when I try to call the constructor it gives an uncaught type error "THREE.OrbitControls is not a constructor". I have searched for a solution, but the only thing I can find is explicitly importing the file. But when I do, it still gives the error. This is my code:
<script src="JS/three.js"></script>
<scirpt src="JS/OrbitControls.js"></scirpt>
<script src="JS/Models/ModelLoader.js"></script>
<script>
var scene = new THREE.Scene( );
var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 0.01, 10000 );
var renderer = new THREE.WebGLRenderer( );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
camera.position.z = 3;
var controls = new THREE.OrbitControls(camera, renderer.domElement);//here is the problem
var pointLight = new THREE.PointLight(0,2);
pointLight.position.z = 2;
scene.add(pointLight);
// Game Logic
var update = function( ){
}
// Draw Scene
var render = function( ){
renderer.render( scene, camera );
}
var testLoad = function(){
var modelLoader = new ModelLoader();
var obj = modelLoader.loadObj("/Res/Models/Characters/char1.obj", "/Res/Models/Characters/char1.mtl");
scene.add(obj);
}
// Main Game Loop(update, render, repeat)
var gameLoop = function( ){
requestAnimationFrame( gameLoop );
update( );
render( );
}
gameLoop();
The ModelLoader is a custom class for loading obj files.
Anyone that knows what I've done wrong? Thanks in advance!
Upvotes: 1
Views: 3780
Reputation: 2974
You have a typo:
<scirpt src="JS/OrbitControls.js"></scirpt>
should be
<script src="JS/OrbitControls.js"></script>
Upvotes: 2