点击按钮时如何更改Three.js中的纹理或颜色

3

我的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] 的纹理或颜色呢?

这里有一个 JSFiddle:http://jsfiddle.net/SCXNQ/559/

1个回答

2
请参考以下示例:http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html 使用console.log来调试你的应用程序,你可能会尝试访问不存在的对象,如cube[0]或cube.mesh。使用cube.material获取材质。由于使用了MeshBasicMaterial,没有uniforms数组。
在纹理的onload监听器中触发Thee needsUpdate=true。

你能否用一个立方体创建一个简单的例子? - Rails beginner
你能否创建一个简单的纹理示例,就像我用颜色创建的一样? - Rails beginner
@Railsbeginner Three.js 已更新,所以你的示例不再起作用了,我已经进行了修复:http://jsfiddle.net/SCXNQ/1007/ - aug

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接