Javascript 三个JS对象加载,给一个对象添加颜色

Javascript 三个JS对象加载,给一个对象添加颜色,javascript,json,Javascript,Json,我试着在三个js中为一个对象添加颜色。 尝试了很多不同的东西,但都不起作用 var objectLoader = new THREE.ObjectLoader(); objectLoader.load("hoesje/hoesje.json", function ( object ) { scene.add( object ); }); 我希望有人能帮我,谢谢 var loader = new THREE.OBJLoader(); loader.addEventListener( 'l

我试着在三个js中为一个对象添加颜色。 尝试了很多不同的东西,但都不起作用

var objectLoader = new THREE.ObjectLoader();
objectLoader.load("hoesje/hoesje.json", function ( object ) {
    scene.add( object );
});
我希望有人能帮我,谢谢

var loader = new THREE.OBJLoader();
loader.addEventListener( 'load', function ( event ) {
    var object = event.content;
    object.traverse( function ( child ) {
        if ( child instanceof THREE.Mesh )
            child.material.color.setRGB (1, 0, 0);
    });
    scene.add( object );
});
loader.load( 'hoes.obj' );
但是我得到了这个错误:TypeError:loader.addEventListener不是一个函数

var loader = new THREE.OBJLoader();
loader.load( 'load', function ( event ) {
    var object = event.content;
    object.traverse( function ( child ) {
        if ( child instanceof THREE.Mesh )
            child.material.color.setRGB (1, 0, 0);
    });
    scene.add( object );
});
loader.load( 'hoes.obj' );
我确实更改了.addEventListener to.load,但它给了我以下错误 NS\u错误\u DOM\u错误\u URI:拒绝访问受限URI

    var objectLoader = new THREE.ObjectLoader();
objectLoader.load("hoesje/hoesje.json", function ( object ) {
scene.add( object );
} );

上面的代码是我在ThreeJS中加载模型的工作代码,在这段代码中,我想实现一个函数来更改颜色。有什么想法吗?

我不知道ThreeJS,但看看你的代码,问题似乎是添加事件侦听器。为什么不使用
OBJLoader
具有以下功能的:

var loader = new THREE.OBJLoader();
loader.load('hoes.obj', function(object) {
    object.traverse( function ( child ) {
        if ( child instanceof THREE.Mesh )
            child.material.color.setRGB (1, 0, 0);
    });
    scene.add( object );
})
编辑 响应OP的编辑。
.load()
方法:
.load(url、onLoad、onProgress、onError)

url-必需
onLoad-加载完成时将调用。这个 参数将是加载的Object3D。
onProgress-将被调用 在加载过程中。参数将是XmlHttpRequest 实例,其中包含.total和.loaded字节。
onError-将是 加载错误时调用

根据下面的代码
loader.load('load',函数(事件)

load
似乎不是
url

函数(事件)
——它不是一个事件——它是加载的Object3D。

这就是为什么在上面的答案中,不是创建一个
eventListener
,然后尝试触发它,而是
load()
方法是使用
.obj资源调用的

第一部分代码有效吗?是的,我发布的第一部分代码加载模型并在浏览器中显示。我想为该对象添加颜色。第二部分代码根本不起作用,它不显示模型。为什么在
加载程序
上使用事件侦听器如果其中一个
OBJLoader
类似
.load()
类似于第一个工作代码段,我尝试了你的代码Craicerjack,我确实得到了以下错误:TypeError:geometry.computeCentroids不是一个函数[Meer info]你正在制作示例吗?这可能是一个问题-是的,我在Clara.io上制作了一个示例,你可以在那里下载threejs的免费模型。我可以加载模型,但我无法更改模型的颜色。你还有什么想法吗?那太好了。根据链接的问题,你可以下载three的旧版本.js-或者检查触发错误的原因并尝试修复该错误