【问题标题】:onLoad in TextureLoader is not working?TextureLoader 中的 onLoad 不起作用?
【发布时间】:2016-05-05 11:03:08
【问题描述】:

我在 Three.js 中使用纹理加载器,其中的 onLoad 函数不起作用在控制台中给出错误

var TextureLoader = new THREE.TextureLoader();

boxtexture.onChange(function (value) {

    TextureLoader.load('textures/' + value,

        // onLoad callback
        function(texture){
            Box1.material.map = texture
            Box1.material.map.wrapT = THREE.RepeatWrapping;
            Box1.material.map.wrapS = THREE.RepeatWrapping;
            Box1.material.map.repeat.set(38, 38);
            Box2.material.map = texture
            Box2.material.map.wrapT = THREE.RepeatWrapping;
            Box2.material.map.wrapS = THREE.RepeatWrapping;
            Box2.material.map.repeat.set(38, 38);
        },

        // onProgress callback
        function(loaded)
        {
            load = 1;
            console.log(loaded);
            window.open(Renderer.domElement.toDataURL());
        }
    );

});

但它不会调用onLoad 函数并在控制台中给出错误消息 纹理已正确加载。但是我需要在加载时调用一个函数。

【问题讨论】:

  • 您使用的是哪个版本的three.js
  • 你在BoxN.material.map = texture结尾处漏掉了两次;

标签: javascript 3d three.js textures onload


【解决方案1】:

我只是在 three.js 中使用加载管理器解决它

var manager = new THREE.LoadingManager();
manager.onLoad = function () {

// call back function when the texture gets loaded

}
var TextureLoader = new THREE.TextureLoader(manager);

TextureLoader.load('textures/', function (texture) {

 material.map = texture;

 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    相关资源
    最近更新 更多