[英]Three.js - Uncaught TypeError: undefined is not a function
我得到了Uncaught TypeError: undefined is not a function
在使用Three.js時Uncaught TypeError: undefined is not a function
。 我正在創建THREE.PerspectiveCamera
的行顯示錯誤。 腳本是
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);
});
這是因為我宣布相機的方式錯了嗎? 我檢查了three.js文檔和示例給出的基本相同。 所以我不知所措。
更新:當我遇到最后一個錯誤時,我正在使用Three.js的本地副本。 我用鏈接http://www.html5canvastutorials.com/libraries/Three.js切換它。 現在,PerspectiveCamera錯誤消失了,但它在Three.js腳本中產生了一個新錯誤。 錯誤是Uncaught TypeError: Cannot read property 'x' of undefined
在Three.js腳本的第337行Uncaught TypeError: Cannot read property 'x' of undefined
謝謝。
本地副本的問題是您使用了未構建的Three.js文件(即src / Three.js)。 你想要的是build / three.js或build / three.min.js。 我將其復制到我的項目中,並在腳本標記的src屬性中更改了對它的引用,這一切都開始工作了。
簡而言之:
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
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.