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>

立方体の配列があり、#buttondivをクリックしたときに立方体のテクスチャを変更できるようにしたいと思います。

divをクリックすると、Chromeでこのエラーが発生します。

Uncaught TypeError: Cannot read property 'material' of undefined 

THREE.CubeGeometryオブジェクトであるcube[0]のテクスチャまたは色を変更するにはどうすればよいですか。

私はここにJSフィドルを持っています:http://jsfiddle.net/SCXNQ/559/

4

1 に答える 1

2

この例に従ってください: http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html

console.log を使用してアプリをデバッグします。cube[0] や cube.mesh などの存在しないオブジェクトにアクセスしようとしています。cube.material を使用してマテリアルを取得します。MeshBasicMaterial を使用しているため、uniforms 配列はありません。

これらの needsUpdate=true は、テクスチャの onload リスナーでトリガーする必要があります。

于 2013-03-09T11:34:38.377 に答える