正在加载具有相同功能的多个对象
Loading multiple objects with the same function
我必须加载一些模型,并希望能够从加载程序外部访问它们。当我试图遵循DRY规则时,我想创建一个用于加载和返回对象的函数。
function loadObject(obj, mtl) {
var loader = new THREE.OBJMTLLoader();
return loader.load( obj, mtl, function ( object ) {
return object;
});
}
但在主要功能中使用后
var box = loadObject('box.obj', 'box.mtl');
scene.add(box);
我得到:
THREE.Object3D.add:对象不是THRE.Object3D的实例。未定义
您并不是return
,而是来自loadObject
的您所认为的。loader.load
的第三个参数是回调;它可能是异步调用的。load
本身不返回任何内容,这就是为什么box
最终成为undefined
的原因。当加载完成到loadObject
:时,您可能应该传递应该发生的事情
function loadObject(obj, mtl, onSuccess) {
var loader = new THREE.OBJMTLLoader();
loader.load(obj, mtl, onSuccess);
}
var box = loadObject('box.obj', 'box.mtl', function(box) {
// 1
scene.add(box);
});
// 2
more code
请记住,使用带有回调的异步方法,"2"下的代码可以在"1"下的代码之前执行。
相关文章:
- 正在加载具有相同功能的多个对象
- .on(“单击”,..)不处理使用相同的单击功能创建的对象
- 为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
- 如何在对象上实现类似拼接的功能
- 是否有将基于字符串的JSON转换为Mongoose Schema对象实例的本地功能
- 如何使用自定义功能覆盖时间轴对象.js时间轴对象的_repaintMinorText
- 从对象旋转对象.带有自定义动画功能的trix.setrotationfromleuler
- JavaScript清理“”中引用的(本地)对象;延迟的“;功能
- 日志记录功能/对象名称's在函数堆栈内的javascript中
- 使用 JavaScript 中的对象的哈希表功能
- 自动完成功能,用于按属性搜索 json 对象
- 这是一个功能声明、表达式和对象吗?
- Javascript - 更快的功能:线性列表搜索或获取对象值
- 向角度对象添加动态功能
- 是否有类似 .push 的功能可以动态地向对象添加值
- 如何根据茉莉花单元测试中的其他对象测试功能
- 允许向对象添加和删除功能的设计模式
- Javascript点击功能不起作用.在输出中显示错误 [对象对象]
- 如何在GWT(或Java AWT Swing)中使用相同的事件处理程序对相同类型的多个对象执行相同的功能
- Internetexplorer-可靠的Javascript方法,用于在IE中对SaveAs对话框进行功能/对象检测