Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ThreeJS-UncaughtTypeError:b[c]。调用不是函数-动态观察控件_Javascript_Three.js - Fatal编程技术网

Javascript ThreeJS-UncaughtTypeError:b[c]。调用不是函数-动态观察控件

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

因此,我正在进行一个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 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)这一行是问题所在,你想用它实现什么?没有必要。