在Three.js实现的Web项目中自动导入模型时需要根据文件名给导入的模型赋予名字,但由于THREE.OBJLoader().load()和你写的读入模型的for循环是异步进行的,因此难以实现,这里使用了一个讨巧的方式实现了这个需求。
笔者使用的方法是从OBJLoader读取过程中的xml文件里找到文件导入的url,然后从url中分离出文件的名字,xml文件的具体内容可以打印xhr查看。这里需要注意的是不同浏览器的xml格式可能不太相同,需要做一定的修改,下面的代码里只考虑了火狐和谷歌的浏览器。
function objLoading() {
//加载OBJ格式的模型
objs_list = one_model_objs["all_objs"];
for(var obj_id in objs_list) {
material_choosed[objs_list[obj_id]