我如何加载特定模板的three.js
How can I load three.js for specific templates
我知道有两种将外部库加载到meteor的主要方法(如http://www.manuel-schoebel.com/blog/use-meteor-iron-router-waiton-to-load-external-javascript中所讨论的)。
此外,还有流星包全局加载three.js
。
有人知道如何使用模板级方法来获得THREE
工作吗?我不希望three.js
加载所有的路线,但我的尝试到目前为止使用~
Template.threeview.onRendered(function(){
Session.setDefault('threejs', false);
// is library already loaded?
if (Session.get('threejs') === false) {
console.log('Requesting threejs...')
$.getScript('/js/three.min.js', function() {
Session.set('threejs', true);
// the THREE object should now be accessible here
// as well as in the window environment...?
console.log(window.THREE);
console.log(THREE);
});
};
});
不工作-我得到
undefined
Uncaught ReferenceError: THREE is not defined
在js控制台窗口。
任何想法?
编辑
发现这个类似的问题可以'找不到3 .js通过Ajax加载后遭受同样的问题-我可以确认从CDN加载工作。有人有更好的解决办法吗?
最后弄明白了——让这个工作的方法是编辑three.min.js
源文件。在three.min.js
的开头删除/注释'use strict';
可以让它正确加载。
这似乎与以下流星的特性/问题有关:https://github.com/meteor/meteor/issues/1380
CDN未缩小且不包含'use strict;'
。为了安全起见,'use strict;'
应该放在全局THREE
命名空间声明之后。
相关文章:
- 在Three.js中导出网格会提高性能吗
- 如何在three.js上添加两个向量
- Three.js Points Rotation
- 无法读取属性'材料'未定义的Three.js
- Potree/Three.js测量问题
- Three.JS OBJ模型未显示
- 有没有一种方法可以获得three.js的最小/lite版本
- JS和three.JS,在浏览器中进行参数测试
- 参数列表Three.js之后的未捕获语法错误:缺少)
- 如何在three.js中有效地使用TraingleStripDrawMode
- 通过拖动可以更改三维模型对象在Three.js场景中的位置
- three.js:如何让透明的png精灵投射和接收阴影
- Three.js更改材质
- three.js EffectComposer's渲染目标
- 单击以将相机放置在Three js中的对象附近
- Three.js Three.投影仪已移至
- THREE.js轨道控制不工作
- three.js:three.Vector3.sub()动作怪异
- Three.js THREE.ImageUtils.loadTexture Image resize
- 使用 Three.js THREE.textureLoader 预加载多个纹理