如何确保在Meteor中的其他文件之前加载Three.js?

maa*_*ine 6 javascript three.js meteor

我正在使用Meteor 0.6.3和Meteorite.我正在尝试使用Meteor开发一款使用Meteor进行多人游戏的游戏.完整代码在这里.我在这里试过使用Atmosphere包,但是我得到了:

ReferenceError:未定义THREE

我的解决方法是在模板文件的标题中包含Three.js.当我不调用Three.js函数直到客户端启动时,这种方法有效.当我尝试使用原型来定义我的盟友类时,我遇到了问题.我的代码如下:

var Enemy = function() {
 this.mesh = new THREE.Mesh();
};

var Enemy = function(){};
Enemy.prototype = new Entity();
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误,即没有定义THREE,即使代码工作正常如果写为:

var Entity = function() {
 this.mesh = new THREE.Mesh();
};

var Enemy = function() {
 this.mesh = new THREE.Mesh();
};
Run Code Online (Sandbox Code Playgroud)

我希望能够使用这样的原型来管理具有相同基本接口的几种类型的实体.以下是我也尝试过的一些事情:

  1. 根据文档,我尝试在project /,project/client /,project/client/compatability /和project/lib /中放置一个three.min.js. 每次它表示没有定义THREE或Meteor崩溃.

  2. 在我们称为Three.js的html文件中定义这些原型.

为了澄清我的问题,我想知道是否有人可以建议如何构建我的文件,以便它将加载Three.js然后我的所有类型文件然后尝试在Meteor.startup()中启动客户端.这是当前的文件结构:

project/model.js
project/server/server.js
project/client/game.css
project/client/game.html
project/client/game.js
Run Code Online (Sandbox Code Playgroud)

如果有任何我应该提供的信息,请告诉我.我希望我不是在严厉地屠杀任何关键词!

rpo*_*ell 1

在 Meteor 中,放置在/lib目录中的脚本会先于其他所有内容加载。我建议从https://github.com/mrdoob/ Three.js/zipball/master 获取最新版本的 Three.js并将其放入其中。