Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 &引用;三、OBJLoader不是构造函数“;及;OBJLoader和OrbitControls中出现意外的标记“{”_Javascript_Three.js_Objloader - Fatal编程技术网

Javascript &引用;三、OBJLoader不是构造函数“;及;OBJLoader和OrbitControls中出现意外的标记“{”

Javascript &引用;三、OBJLoader不是构造函数“;及;OBJLoader和OrbitControls中出现意外的标记“{”,javascript,three.js,objloader,Javascript,Three.js,Objloader,我正在尝试将OBJ 3D模型显示为线框,可以使用Three.js使用OrbitControls进行移动。我对Three.js是新手,如果我遗漏了一些“明显的”东西,我向您道歉 我已经能够用OrbitControl将立方体显示为线框。 在另一种设置中,我能够将OBJ 3D模型显示为线框。因此,问题与3D模型无关 当我尝试将这两种方法混合在一起时,问题就出现了 我试着从两个方面着手: 我尝试将OBJLoader插入到多维数据集环境中 我试图将OrbitControls添加到工作但不可移动的线框OBJ

我正在尝试将OBJ 3D模型显示为线框,可以使用Three.js使用OrbitControls进行移动。我对Three.js是新手,如果我遗漏了一些“明显的”东西,我向您道歉

我已经能够用OrbitControl将立方体显示为线框。 在另一种设置中,我能够将OBJ 3D模型显示为线框。因此,问题与3D模型无关

当我尝试将这两种方法混合在一起时,问题就出现了

我试着从两个方面着手:

  • 我尝试将OBJLoader插入到多维数据集环境中
  • 我试图将OrbitControls添加到工作但不可移动的线框OBJ环境中。(根本不起作用)
  • 大多数其他答案都集中在脚本的顺序上:是的,我试图以各种可能的方式将
    three.min.js
    OrbitControls.js
    OBJLoader.js
    ,以及我的主要工作
    model.js
    有序化

    这是我的密码:

    
    html,正文{margin:0;}#model#容器{背景色:#333333;margin:50px;}
    线框
    
    const globalWidth=window.innerWidth-100;
    const globalHeight=window.innerHeight-100;
    const scene=new THREE.scene();
    常量摄影机=新的三透视摄影机(75,全球宽度/全球高度,0.11000);
    摄像机位置x=300;
    摄像机位置y=-6;
    摄像机位置z=1;
    const renderer=new THREE.WebGLRenderer({
    反别名:是的,
    阿尔法:是的
    });
    setClearColor(0xffffff,0);
    设置大小(globalWidth,globalHeight);
    const canvas=document.getElementById(“模型容器”);
    canvas.appendChild(renderer.doElement);
    常数环境=新的三个环境光(0xffffff);
    场景。添加(环境光);
    const loader=new THREE.OBJLoader();
    loader.load(“assets/castle.obj”,函数(对象){
    常量几何体=对象。子对象[0]。几何体;
    三、几何中心(几何);
    const material=new THREE.meshlambertmater({});
    常量网格=新的三个网格(几何体、材质);
    mesh.material.wireframe=真;
    场景。添加(网格);
    })
    常数控制=新的三个轨道控制(摄像机);
    controls.enableDamping=true;
    控制。阻尼系数=0.05;
    controls.rotateSpeed=0.1;
    controls.target.set(0,0,0);
    var animate=函数(){
    请求动画帧(动画);
    控件更新();
    渲染器。渲染(场景、摄影机);
    };
    制作动画();
    
    以下是我在3天的搜索和尝试后无法修复的错误:

    • OrbitControls.js:9
      未捕获的语法错误:意外标记{
    • OBJLoader.js:5
      未捕获的语法错误:意外标记{
    • 未捕获类型错误:THREE.OBJLoader不是model.js:23的构造函数
    这些错误似乎源于三个.js文件本身,我觉得这很奇怪。我已经没有想法和文档可供查阅了

    我正在使用MAMP运行此程序,但也尝试将其上载到服务器,以查看问题是否与本地文件或任何类似文件有关


    three.js R106

    修复了它!非常感谢!
    <script defer src="script/three/examples/jsm/controls/OrbitControls.js"></script>
    <script defer src="script/three/examples/jsm/loaders/OBJLoader.js"></script>
    
    <script defer src="script/three/examples/js/controls/OrbitControls.js"></script>
    <script defer src="script/three/examples/js/loaders/OBJLoader.js"></script>