Angular2 使用 threejs Orbitcontrols

标签 angular three.js angular-cli

我正在尝试在我的 angular (cli) 2 应用程序中使用 threejs 示例。

所以我安装了 threejs :

npm install three --save

然后添加类型:

npm install @types/three --save-dev

最后我的组件看起来像这样:

import { Component, OnInit } from '@angular/core';
import * as THREE from 'three';

@Component({
    selector: 'app-testthreejs',
    templateUrl: './testthreejs.component.html',
    styleUrls: ['./testthreejs.component.css']
})
export class TestthreejsComponent implements OnInit {
//
}

有了这个,我可以毫无问题地使用三个中的一些功能。

我想使用 node_modules/three/examples/js/中可用的一些示例,更准确地说是 OrbitControl。打字让我在 visual studio 代码中自动完成: vscode

但是当我尝试使用它时,我遇到了以下错误:

TypeError: WEBPACK_IMPORTED_MODULE_1_three.OrbitControls is not a constructor

有没有办法通过一些导入来提供 OrbitControls(和其他示例)? 我应该只在我的 html 中包含 control.js 吗?

处理这个问题的最佳方法是什么?

最佳答案

新方法

只需从示例模块导入 OrbitControls

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

旧答案

尝试使用替代包 https://www.npmjs.com/package/three-orbitcontrols-ts

<强>1。安装包

npm install --save three-orbitcontrols-ts

<强>2。在您的文件中使用

import * as THREE from 'three';
import { OrbitControls } from 'three-orbitcontrols-ts';

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

关于Angular2 使用 threejs Orbitcontrols,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40530708/

相关文章:

node.js - 从 API 响应中打开 PDF 到 Angular 中的新选项卡

javascript - 传单的Three.js层

angular - Angular CLI 在运行 "ng g component"时也将 ngOnDestory 添加到组件的任何选项

angular - 存储库不干净。请在更新 Angular 8 之前提交或存储任何更改

angular - 如何使用 Angular 2 为不同的环境加载不同的全局 css 样式

javascript - 错误: Cannot find module "expose?Zone!zone.js"

angular - 从 Firebase 数据库读取和显示数据

javascript - Angular 中的字体和图标冲突

javascript - 如何绕轴旋转 Three.js Vector3?

javascript - 如何使用 ThreeJS 在 iPhone 5 上渲染对象的 .mtl?