我最近开始使用Three.js并使用JSONLoader创建了一个对象。整个对象包含一种灰色的材料。
现在我只想通过点击我添加到HTML中的按钮来更改对象的颜色。
<input type="button" value="Change Color" onClick="group.material.color.setHex('0xffffff')">
DevTools提供以下消息:
无法读取属性&#39;颜色&#39;未定义的
好吧,我检查了对象是否包含属性颜色,当然它没有。
我知道它不会起作用,但希望最终会消失。以下是创建对象的部分:
group = new THREE.Object3D();
//load mesh
var loader = new THREE.JSONLoader();
loader.load('models/s_class.js', function( geometry ) {
mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial( {color: 0x2f3a4c}) );
mesh.scale.set( 10, 10, 10 );
mesh.rotation.x = -Math.PI / 2;
mesh.position.y = 0;
group.add( mesh );
scene.add( group );
} );
请问,有没有办法只需按一下按钮就可以改变颜色?我是否必须使用另一台Loader构建我的对象?
提前致谢!!!
答案 0 :(得分:0)
不要设置“组”的颜色,而是设置孩子的颜色。例如。使用遍历函数。
clear:both;