单击按钮时,Three.js会更改纹理或颜色

时间:2013-03-09 11:15:32

标签: three.js

我的jQuery:

<script type="text/javascript">
$(document).ready(function(){

$("#button").click(function(){
cube[0].mesh.material.uniforms.texture.value = THREE.ImageUtils.loadTexture("textures/envmap.png");
cube[0].mesh.material.uniforms.texture.needsUpdate = true;
});

});
</script>

我有一个多维数据集数组,我希望能够在单击#button div时更改多维数据集的纹理。

单击div时,我在chrome中遇到此错误:

Uncaught TypeError: Cannot read property 'material' of undefined 

如何更改作为THREE.CubeGeometry对象的cube [0]的纹理或颜色。

我在这里有一个JS小提琴:http://jsfiddle.net/SCXNQ/559/

1 个答案:

答案 0 :(得分:2)

请遵循以下示例:http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html

使用console.log调试您的应用,您正在尝试访问不存在的对象,例如cube [0]或cube.mesh。您可以使用cube.material获取材质。没有制服数组,因为您使用的是MeshBasicMaterial。

应该在纹理的onload侦听器中触发你需要更新= true。