asd*_*sdf 12 html javascript three.js typescript
我无法在TypeScript中使用前面提到的组合这个例子.
我有<script src="lib/three.min.js"></script>和<script src="lib/OrbitControls.js"></script>我的html <head>和typescript文件<body>:
/// <reference path="lib\three.d.ts" />
...
this.controls = new THREE.OrbitControls(this.camera); //there's the error
this.controls.addEventListener('change', this.render);
...
Run Code Online (Sandbox Code Playgroud)
和
this.controls.update();
Run Code Online (Sandbox Code Playgroud)
在周期性调用render()函数.据我所知,设置与expample相同,但在编译OrbitControls构造函数行时给出了一个巨大的错误(缩写):
The property 'OrbitControls' does not exist on value of type '{REVISION:string;
CullFace: {[x: number ...
Run Code Online (Sandbox Code Playgroud)
我猜这个错误中有整个Threejs,因为Visual Studio在我点击它时崩溃了:).谢谢你的帮助.
nic*_*nel 15
经过几个小时花在这个问题上,我最终创建了一个新的包:三轨道控制
import * as THREE from 'three';
import { OrbitControls } from 'three-orbitcontrols-ts';
const controls = new OrbitControls(camera, renderer.domElement);
Run Code Online (Sandbox Code Playgroud)
小智 8
导入THREE后直接从源文件导入OrbitControl对我来说很有用(不使用three-orbitcontrols-ts包):
import * as THREE from 'three';
import 'three/examples/js/controls/OrbitControls';
Run Code Online (Sandbox Code Playgroud)
仅使用three和@types/three包
如文档中所述,请执行以下操作:
import * as THREE from 'three';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
Run Code Online (Sandbox Code Playgroud)
重要的是您使用文件夹jsm而不是js。并且请记住,并不是所有模块都在jsm文件夹中可用
感觉有点傻,因为解决方案(或至少是解决方法)非常简单......
只需声明OrbitControls变量:
declare var THREE.OrbitControls: any; // even "declare var THREE.OrbitControls;" will do the trick
Run Code Online (Sandbox Code Playgroud)
仍然存在一些编译错误,但它可以工作。
| 归档时间: |
|
| 查看次数: |
9139 次 |
| 最近记录: |