【问题标题】:How to call a function, when collada textures were loaded? (Three.js)加载collada纹理时如何调用函数? (三.js)
【发布时间】:2012-07-24 22:22:31
【问题描述】:
loader.load( 'path/to/collada.dae', function ( collada ) {
  // This function is called, when collada were loaded.

});

但是当纹理被加载时如何调用函数呢?

【问题讨论】:

    标签: javascript webgl three.js collada


    【解决方案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;
            };
        }
    });
    

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

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 2018-04-04
      • 2017-09-11
      • 1970-01-01
      • 2012-09-15
      • 2016-03-26
      • 2012-10-06
      • 2020-06-10
      • 2022-01-25
      相关资源
      最近更新 更多