【问题标题】:THREE.OrbitControls is not a constructor, can't figure what to doTHREE.OrbitControls 不是构造函数,不知道该怎么做
【发布时间】:2020-11-24 18:51:51
【问题描述】:

我正在尝试添加 OrbitControls,但在此指令中我总是收到此错误:

var controls = new THREE.OrbitControls( camera, renderer.domElement );

我已经安装了 npm three.js 和 three-orbitcontrols.js,我已经阅读了所有的答案,但我仍然不知道我应该做什么。如果我在我的jsp页面中使用require或import,我仍然会遇到这个问题。 我也尝试过使用 browserify,但没有帮助(我收到了 EPERM 错误,所以也许我做错了什么?)。

有人可以帮助我吗?我错过了什么?

编辑:我意识到我写的是 OrbitControls.js 而不是三个orbitControls.js,很抱歉。另外,如果我尝试使用导入控制台说:“SyntaxError: Cannot use import statement outside a module”

【问题讨论】:

标签: javascript node.js three.js


【解决方案1】:

尝试像这样导入

import * as THREE from 'three';

var controls = new THREE.OrbitControls( camera, renderer.domElement );

在文件的顶部。

【讨论】:

    【解决方案2】:

    您需要安装three-orbitcontrols,因为OrbitControls 不在three.js npm 包中。

    要安装OrbitControls,请使用

    npm install three-orbitcontrols
    

    编辑

    OrbitControls npm 包说:

    three-js 现在通过 three/examples/jsm/... 公开真实模块,例如导入 Orbit,从 'three/examples/jsm/controls/OrbitControls' 导入 { OrbitControls }

    所以,你可以使用真正的模块

    import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
    

    【讨论】:

      【解决方案3】:

      最后,问题是我在错误的文件夹中使用了 browserify:现在我已经创建了捆绑包并且它可以工作了,感谢您的回复。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-06
        • 1970-01-01
        • 2013-07-15
        • 1970-01-01
        • 2017-05-05
        • 1970-01-01
        • 2022-11-17
        • 1970-01-01
        相关资源
        最近更新 更多