我在 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 中的加载管理器解决了这个问题
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;
});
关于javascript - TextureLoader 中的 onLoad 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35055251/