如何在加载collada纹理时调用函数? (three.js所)

时间:2012-07-26 10:36:08

标签: javascript webgl three.js collada

loader.load( 'path/to/collada.dae', function ( collada ) {
  // This function is called, when collada were loaded.

});

但是如何在加载纹理时调用函数?

1 个答案:

答案 0 :(得分:1)

ColladaLoader类使用THREE.ImageUtils在line 3087上加载纹理。 ImageUtils类has the ability在加载图像时提供回调,但ColladaLoader不使用它。

您可以通过遍历查找图像的collada场景来创建变通方法。这是一个live demo。相关代码是:

THREE.SceneUtils.traverseHierarchy( dae.scene, function (object) {
    if (object.material && object.material.map) {
        object.material.map.image.onload = function() {
            console.log('image loaded');
            object.material.map.needsUpdate = true;
        };
    }
});

在加载每个纹理时,将“加载的图像”打印到控制台。