【问题标题】:How can I load an array of json objects in three.js?如何在 three.js 中加载 json 对象数组?
【发布时间】:2015-01-22 18:45:51
【问题描述】:

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

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

【问题讨论】:

    标签: javascript arrays json three.js raytracing


    【解决方案1】:

    其实这和 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
             });
    
        })();
    

    您可以创建简单的计数器来控制此函数运行的次数

    【讨论】:

    • 我猜我不明白。这在我的上下文中如何工作?
    • 你加载了一些异步的东西,所以你的 for 结束比 ajax 完成的更快,所以你需要在第一个结束时进行下一次迭代,否则你会得到你得到的)
    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 2021-10-24
    • 2013-05-08
    相关资源
    最近更新 更多