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

Three JS object load, put a color to an object

本文关键字:对象 添加 颜色 JS 三个 加载      更新时间:2023-09-26

我试图把一个颜色的对象在三个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。load,但它给了我以下错误NS_ERROR_DOM_BAD_URI:访问受限URI被拒绝

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

上面的代码是我的工作代码加载一个模型在ThreeJS,在这段代码中,我想实现一个函数来改变颜色…任何想法?

我不知道三个ejs,但看看你的代码和问题似乎是添加事件侦听器。为什么不使用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 - required
onLoad -将在加载完成时调用。的参数将是加载的Object3D。
onProgress -将被调用加载进行时。参数将是XmlHttpRequest实例,包含。total和。loaded字节。
onError -将是加载错误时调用。

给出下面的代码loader.load( 'load', function ( event )

load似乎不是url
function(event)——它不是一个事件——它是加载的Object3D。
这就是为什么在上面的答案中,不是创建eventListener然后尝试触发它,而是使用.obj resource调用load()方法。