好的,所以加载器的异步行为让我失望。这是我所拥有的:
for( i = 0; i < 37; i++ ){
partLoader.load( "parts/" + filename[i], function ( geometry ) {
var partMesh = new THREE.Mesh( geometry, basicMat );
partMesh.position.y = yPos;
partMesh.position.x = xPos;
bodyPart.push(partMesh);
rayCastScene.add( partMesh );
});
}
最初我设置了 bodyPart[i] = partMesh
但当回调运行时 i = 36 并且所有这些都在最后一个元素中相互覆盖。插入它们至少可以将它们全部放入数组中,但我不知道哪个索引与哪个元素对应。
我将其与光线追踪一起使用来识别特定对象。if(SELECTED == bodyPart[i]) ...
这里有类似问题,但没有解决方案:THREE.JS loading an array of STL Meshes
最佳答案
其实这不是Three.js的问题,逻辑上的问题,简单的例子:
(function request(){
$.ajax({
url: "your path",
data: "your data",
timeout: "max respones time from the server in milliseconds"
})
.done(function(response){
//do something with response
request(); //call request function again
});
})();
您可以创建简单的计数器来控制该函数运行的次数
关于javascript - 如何在 Three.js 中加载 json 对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115283/