1

我正在使用 three.js 开发一个简单的模型预览器,用户可以在其中动态上传和更改模型材料的纹理等。

在我的一生中,我无法克服这个错误,并且我已经为应该具有 addEventListener 方法的 three.js 中的其他加载程序遇到了这个问题。那么我做错了什么?我正在使用 r59

function loadTex(tex)
{
    var texture = new THREE.Texture();

    var imgloader = new THREE.ImageLoader( manager );

    imgloader.addEventListener('load', function(event) {
        // Event stuff
    });

    imgloader.load( tex );
}

图像成功上传到服务器后调用此函数。我要做的就是改变已经存在的材质的纹理。

4

2 回答 2

1

当我从 r58 升级到 r59 时,我遇到了同样的问题。看起来 addEventListener 方法在 r59 中不可用(https://github.com/mrdoob/three.js/blob/master/src/extras/ImageUtils.js

您可以使用 loadTexture 方法并监听 onLoad 和 onError 事件

function onLoad(event) {
// do something
}

function onError(event) {
// do something
}

texture = THREE.ImageUtils.loadTexture(url,mapping,onLoad,onError)

您可以传递 {} 进行映射或使用此处定义的任何值

http://threejs.org/docs/59/#Reference/Textures/Texture

于 2013-07-29T11:46:55.263 回答
0
var imgloader = new THREE.ImageLoader( manager );
imgloader.load(tex, function(event) {
    // Event stuff
});
于 2014-09-09T21:01:09.373 回答