2014-11-24 41 views
0

好吧,所以加载器的异步行为是什么让我失望。下面是我有:如何在three.js中加载json对象的数组?

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而是由当时的回调跑到我= 36,他们都只是在最后一个元素改写对方。推他们至少让他们在阵列中,但我不知道哪个索引随着哪个元素了。

我使用这个与光线追踪识别特定对象。 if(SELECTED == bodyPart[i]) ...

类似的问题在这里,但没有办法解决:THREE.JS loading an array of STL Meshes

回答

2

Actualy这是不是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 
     }); 

    })(); 

您可以创建简单的计数器来控制多少次这个功能将运行

+0

我不明白我猜。这在我的上下文中如何工作? – Sammy 2014-11-24 22:37:20

+0

您加载异步的东西,所以你最终更快,然后阿贾克斯完成,所以你需要做,只有当第一个结束一次迭代或者你会得到你所得到的) – Smile0ff 2014-11-24 22:44:01

+0

大大减缓了加载时间,但它确实工作。 – Sammy 2014-11-25 03:18:52

相关问题