如何在three.js中加载json对象数组?

时间:2014-11-24 22:22:14

标签: javascript arrays json three.js raytracing

好的,所以加载器的异步行为就是让我失望的原因。这就是我所拥有的:

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

1 个答案:

答案 0 :(得分: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
         });

    })();

你可以创建一个简单的计数器来控制这个函数运行的次数