2017-01-26 29 views
0

私はthree.jsで始まります。そして今、問題が見つかり、助けが必要です。シンプルに見えますが、私は良い答えを見つけることはありません。問題は、OrbitControls.js(CODE1)の使用を宣言しても、DOMの3つのツリーに表示されていても(図1)。コンストラクタ(CODE 2)を使用しようとすると、エラーが発生します。 "TypeError:THREE.OrbitControlsはコンストラクタではありません"図2TypeError:THREE.OrbitControlsはコンストラクタではありません

CODE1 :***index.html*** 
<html> 
    <head> 
     <title>My first three.js app</title> 
     <style> 
      body { margin: 0; } 
      canvas { width: 100%; height: 100% } 
     </style> 
    </head> 
    <body> 

     <script src="js/libs/three.min.js"></script> 
     <script src="js/cena.js"></script> 
     <script src="js/libs/AxisHelper.js"></script> 
     <script src="js/libs/GridHelper.js"></script> 
     <script src="js/libs/OrbitControls.js"></script> 

    </script> 
    </body> 
</html> 

THE THREE tree at DOM

CODE2***:cena.js*** 

var cena = new THREE.Scene(); 

var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); 

var renderizador = new THREE.WebGLRenderer({antialias:true}); 

renderizador.setSize(window.innerWidth, window.innerHeight); 

document.body.appendChild(renderizador.domElement); 
//---------------------------- 


var geometry = new THREE.BoxGeometry(3, 1, 2); 

var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); 

var cube = new THREE.Mesh(geometry, material); 

var axisHelper = new THREE.AxisHelper(5); 
cena.add(axisHelper) 
var tamanho = 10; 
var elementos = 10; 
var grid = new THREE.GridHelper(tamanho,elementos); 
cena.add(grid); 

cena.add(cube); 

camera.position.z = 10; 
camera.position.y = 10; 
camera.position.x = 5; 

var lookat_vector = new THREE.Vector3(0,0,0); 
camera.lookAt(lookat_vector); 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

var controle = new THREE.OrbitControls(camera, renderizador.domElement); 

var render = function() { 
     requestAnimationFrame(render); 
     controle.update(); 
     cube.rotation.x += 0.01; 
     cube.rotation.y +=0.01; 
     cube.rotation.z +=0.03; 

     renderizador.render(cena, camera); 
     //controle.update(); 
    }; 

render(); 

Error

答えて

1

あなたは前THREE.OrbitalControlsを作成するスクリプトタグ内OBJLoader.jsを含める必要があります。

1

libsを含めて、最後にcena.jsスクリプトを入れる必要があります。 スクリプトタグが同期して読み込まれます。

<script src="js/libs/three.min.js"></script> 
    <script src="js/libs/AxisHelper.js"></script> 
    <script src="js/libs/GridHelper.js"></script> 
    <script src="js/libs/OrbitControls.js"></script> 
    <script src="js/cena.js"></script> 
+0

ビンゴ。あなたは正しい。信じられない。 –

関連する問題