我的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/
答案 0 :(得分:2)
请遵循以下示例:http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html
使用console.log调试您的应用,您正在尝试访问不存在的对象,例如cube [0]或cube.mesh。您可以使用cube.material获取材质。没有制服数组,因为您使用的是MeshBasicMaterial。
应该在纹理的onload侦听器中触发你需要更新= true。