我正试图用三个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中加载模型的工作代码,在这段代码中我想实现一个函数来改变颜色......有什么想法?
答案 0 :(得分:0)
我不知道threejs但看着你的代码,问题似乎是添加事件监听器。为什么不使用OBJLoader
所拥有的methods:
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
然后尝试触发它,而是使用load()
调用.obj resource
方法。