Javascript ThreeJS-UncaughtTypeError:b[c]。调用不是函数-动态观察控件
因此,我正在进行一个three.js项目。我的轨道控制装置开始工作了。它们功能正常,但对于我用鼠标移动的每一个像素,我都会得到以下错误:Javascript ThreeJS-UncaughtTypeError:b[c]。调用不是函数-动态观察控件,javascript,three.js,Javascript,Three.js,因此,我正在进行一个three.js项目。我的轨道控制装置开始工作了。它们功能正常,但对于我用鼠标移动的每一个像素,我都会得到以下错误: Uncaught TypeError: b[c].call is not a function at THREE.OrbitControls.dispatchEvent (three.min.js:343) at THREE.OrbitControls.update (OrbitControls.js:230) at handleMou
Uncaught TypeError: b[c].call is not a function
at THREE.OrbitControls.dispatchEvent (three.min.js:343)
at THREE.OrbitControls.update (OrbitControls.js:230)
at handleMouseMoveRotate (OrbitControls.js:493)
at HTMLDocument.onMouseMove (OrbitControls.js:901)
这是我的代码:
function initial() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(90, window.innerWidth / window.innerHeight, 45, 30000);
camera.position.set(-100, 0, -1200);
renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
let controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.addEventListener('change', renderer);
controls.minDistance = 500;
controls.maxDistance = 1500;
controls.dampingFactor = 0.25; // friction
controls.rotateSpeed = 0.5; // mouse sensitivity
let materialArray = [];
let texture_ft = new THREE.TextureLoader().load('./assets/px.jpg');
let texture_bk = new THREE.TextureLoader().load('./assets/nx.jpg');
let texture_up = new THREE.TextureLoader().load('./assets/py.jpg');
let texture_dn = new THREE.TextureLoader().load('./assets/ny.jpg');
let texture_rt = new THREE.TextureLoader().load('./assets/pz.jpg');
let texture_lf = new THREE.TextureLoader().load('./assets/nz.jpg');
materialArray.push(new THREE.MeshBasicMaterial({
map: texture_ft
}));
materialArray.push(new THREE.MeshBasicMaterial({
map: texture_bk
}));
materialArray.push(new THREE.MeshBasicMaterial({
map: texture_up
}));
materialArray.push(new THREE.MeshBasicMaterial({
map: texture_dn
}));
materialArray.push(new THREE.MeshBasicMaterial({
map: texture_rt
}));
materialArray.push(new THREE.MeshBasicMaterial({
map: texture_lf
}));
for (let i = 0; i < 6; i++)
materialArray[i].side = THREE.BackSide;
let skyboxGeo = new THREE.BoxGeometry(10000, 10000, 10000);
let skybox = new THREE.Mesh(skyboxGeo, materialArray);
scene.add(skybox);
animate();
}
function animate() {
renderer.render(scene,camera);
requestAnimationFrame(animate);
}
initial();
函数初始值(){
场景=新的三个。场景();
摄像头=新的三个透视摄像头(90,window.innerWidth/window.innerHeight,4530000);
相机。位置。设置(-100,0,-1200);
renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
let controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
控件。addEventListener('change',渲染器);
controls.minDistance=500;
controls.maxDistance=1500;
controls.dampingFactor=0.25;//摩擦力
controls.rotateSpeed=0.5;//鼠标灵敏度
设materialArray=[];
让texture_ft=new THREE.TextureLoader().load('./assets/px.jpg');
让texture_bk=new THREE.TextureLoader().load('./assets/nx.jpg');
let texture_up=new THREE.TextureLoader().load('./assets/py.jpg');
让texture_dn=new THREE.TextureLoader().load('./assets/ny.jpg');
让texture_rt=new THREE.TextureLoader().load('./assets/pz.jpg');
让texture_lf=new THREE.TextureLoader().load('./assets/nz.jpg');
材料排列。推动(新的三网格基本材料({
贴图:纹理
}));
材料排列。推动(新的三网格基本材料({
贴图:纹理
}));
材料排列。推动(新的三网格基本材料({
贴图:纹理向上
}));
材料排列。推动(新的三网格基本材料({
贴图:纹理
}));
材料排列。推动(新的三网格基本材料({
贴图:纹理
}));
材料排列。推动(新的三网格基本材料({
贴图:纹理
}));
for(设i=0;i<6;i++)
材料排列[i]。侧面=三。背面;
让skyboxGeo=new THREE.BoxGeometry(10000,10000,10000);
让skybox=new THREE.Mesh(skyboxGeo,materialArray);
场景.添加(skybox);
制作动画();
}
函数animate(){
渲染器。渲染(场景、摄影机);
请求动画帧(动画);
}
首字母();
我已经用谷歌搜索了这个错误,但找不到解决方案。有人知道如何解决这个问题吗?你不需要
控件代码>,您可以使用控件。更新()
同样的错误也出现在我身上,但当我停止对three.js使用three.min.js时它就解决了。controls.addEventListener('change',renderer)代码>这一行是问题所在,你想用它实现什么?没有必要。