JSONLOADER在three.js中

时间:2017-04-18 04:28:05

标签: javascript three.js

我使用JSONloader在three.js中加载模型,它运行正常,唯一的问题是步骤甚至文档将帮助我预加载纹理(图像),以便我创建一个交互(用鼠标点击切换图像)。

var loader = new THREE.JSONLoader(),
    callbackKey = function(geometry,materials) {createScene(geometry,materials,0, 0, 0, 25)};
    loader.load("3dmodel/Converse_obj/converse_obj.js", callbackKey);

    window.addEventListener('resize', onWindowResize, false);


}


function createScene(geometry,materials, x, y, z, scale) {

    zmesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
    zmesh.position.set(x, y, z);
    zmesh.scale.set(scale, scale, scale);
    meshes.push(zmesh);
    scene.add(zmesh);


}

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题,它可能与three.js没什么关系。

三个确实来自LoadingManager课程,我相信它是这样的:

function onAllMyTexturesLoaded () {...}
function onSingleTextureLoaded() {...}
myTextureManager = new THREE.LoadingManager( onAllMyTexturesLoaded , onSingleTextureLoaded , onError )

myTextureLoader = new THREE.TextureLoader( myTextureManager ) 

加载完所有纹理后,您可以开始加载网格物体。通过此加载程序加载的任何内容都应该触发这些回调。

您还可以将纹理ID放在字典中,当它们进入时将它们标记为true,遍历键并查看它们是否都为真,触发事件。