【发布时间】:2015-08-14 03:08:13
【问题描述】:
我目前正在使用 THREE.js 和 socket.io 来制作一个小游戏 - 我想为 THREE.js 使用 OrbitControls 扩展(我以前在非 TS 项目中使用过它)用于相机控制。
问题是客户端似乎找不到它(它编译得很好):
Uncaught TypeError: undefined is not a function
在线:
this.cameraControls = new THREE.OrbitControls(this.camera, this.renderer.domElement);
我在我的 TS 文件中使用:
///<reference path="../typings/threejs/three-orbitcontrols.d.ts"/>
import OrbitControls = require("three-orbitcontrols");
在我的三轨道控制.d.ts 文件的底部,我在一些打字文件的底部有我似乎需要的常用导出:
declare module 'three-orbitcontrols' {
export=THREE.OrbitControls;
}
但我不确定这是否是正确的格式,我尝试了一些方法,例如将 requirejs 指向配置中的正确文件(因为文件名有点不同):
paths: {
"three-orbitcontrols": "three.orbitcontrols"
}
有趣的是,在使用 Gulp(使用 AMD)编译后,三轨道控件不会出现在生成的 .js 文件顶部的 require 中。
我的问题是:您如何正确地为您已经拥有的 TS 和 requirejs 库包含一个“扩展”库?我需要做某种形式的合并吗?我需要手动合并 d.ts 和 js 文件吗? (希望不会!)
谢谢!
【问题讨论】:
标签: three.js requirejs typescript