Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
152
rated 0 times [  155] [ 3]  / answers: 1 / hits: 19353  / 11 Years ago, mon, march 18, 2013, 12:00:00

I'm getting the Uncaught TypeError: undefined is not a function while using Three.js.
The error is being shown for the line where I'm creating a THREE.PerspectiveCamera.
The script is



window.requestAnimFrame = (function(callback){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000 / 60);
};
})();

function animate(lastTime, angularSpeed, three){
// update
var date = new Date();
var time = date.getTime();
lastTime = time;

// render
three.renderer.render(three.scene, three.camera);

// request new frame
requestAnimFrame(function(){
animate(lastTime, angularSpeed, three);
});
}

$(window).bind('load',function(){
var angularSpeed = 0.2; // revolutions per second
var lastTime = 0;
$container = $(#container);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
$container.append(renderer.domElement);

// camera - Uncaught Type Error on the below line
var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.y = -450;
camera.position.z = 400;
camera.rotation.x = 45 * (Math.PI / 180);

// scene
var scene = new THREE.Scene();

var material = new THREE.LineBasicMaterial({
color: 0x0000ff,
});
var geometry = new THREE.Geometry();
for(var i=0;i<100;i++){
geometry.vertices.push(new THREE.Vector3(i-100,i-100,i-100));
geometry.vertices.push(new THREE.Vector3(i+100,i+100,i+100));
var line = new Three.Line(geometry,material);
scene.add(line);
geometry=new THREE.Geometry();
}


// create wrapper object that contains three.js objects
var three = {
renderer: renderer,
camera: camera,
scene: scene,
};

animate(lastTime, angularSpeed, three);
});


Is this because the way I'm declaring the camera is wrong?
I checked the three.js documentation and the example give there is basically the same.
So I'm stuck on what to do.



UPDATE:
I was using a local copy of Three.js when I encountered the last error. I switched it with the link http://www.html5canvastutorials.com/libraries/Three.js.
Now, the PerspectiveCamera error is gone, but it produces a new error inside the Three.js script. The error is Uncaught TypeError: Cannot read property 'x' of undefined on line 337 of the Three.js script



Thanks.


More From » three.js

 Answers
6

The problem with the local copy is you used the unbuilt Three.js file (that would be src/Three.js). The one you want is either build/three.js or build/three.min.js. I copied that into my project, and changed the reference to it in the script tag's src attribute, and it all started working.



In short:



mrdoob-three.js-2524525(or some other number here)
|
+----build
| |
| +--three.js <-- YES, CORRECT FILE
| +--three.min.js <-- YES
| ...
|
+----src
... |
+--Three.js <-- NO, PREBUILT FILE THAT ONLY CONTAINS CONSTANTS
...

[#79528] Saturday, March 16, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jameson

Total Points: 534
Total Questions: 103
Total Answers: 102

Location: Lithuania
Member since Fri, Sep 4, 2020
4 Years ago
jameson questions
;