我的 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 对象的立方体 [0] 的纹理或颜色。
我这里有一个 JS fiddle : http://jsfiddle.net/SCXNQ/559/
最佳答案
按照这个例子:http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html
使用console.log调试您的应用程序,您正在尝试访问不存在的对象,例如cube[0]或cube.mesh。您可以使用cube.material 获取 Material 。没有制服数组,因为您使用的是 MeshBasicMaterial。
needsUpdate=true 应该在纹理的 onload 监听器中触发。
关于Three.js 单击按钮时更改纹理或颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15310026/