当前位置:  开发笔记 > 前端 > 正文

TypeError:OrbitControls不是angular2中的构造函数

如何解决《TypeError:OrbitControls不是angular2中的构造函数》经验,为你挑选了1个好方法。

我正在使用three.js处理angular2.

这是我的角度cli的配置.

在package.json中:

"three": "^0.81.2",
"three-stl-loader": "^1.0.4",

在angular.cli.json中:

    "../node_modules/three/build/three.min.js",
    "../node_modules/three/examples/js/Detector.js",
    "../node_modules/three/examples/js/controls/OrbitControls.js",
    "../node_modules/three/examples/js/controls/TrackballControls.js",
    "../node_modules/three/examples/js/loaders/STLLoader.js",

在组件文件中,我加载了THREE和OrbitControls:

import * as THREE from 'three';    
import PerspectiveCamera = THREE.PerspectiveCamera;
import OrbitControls = THREE.OrbitControls;

应用程序运行时,控制台会显示以下消息:

'THREE.WebGLRenderer 81
three.js:41149 THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.
three.js:41158 THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.
'

所以显然有三个.js被加载,但为什么无法找到OrbitControls?



1> 小智..:

我遇到了类似的问题.这是我的工作,运行以下命令:

npm install three-orbit-controls

编辑import语句下的component.ts文件,但在@Component上面:

const THREE = require('three');
const OrbitControls = require('three-orbit-controls')(THREE);

现在它将被称为OrbitControls而不是THREE.OrbitControls

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有