2014-11-24 38 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

相關問題