2016-09-06 11 views
0

3つのJSで壁を作成しました。クリックイベントで色を動的に変更しようとしています。しかし、その仕事はありません。以下のコードのエラーとは何か:3色でダイナミックな色の変化がありません。JS

var materials = [ materialFront, materialSide ]; 

var material = new THREE.MeshFaceMaterial(materials); 

if(path_type=="wall") 
{ 
    var mesh1 = new THREE.Mesh(geometry1, material); 
    object.add(mesh1); 
} 
else { 
    var mesh2 = new THREE.Mesh(geometry1, material); 
    object.add(mesh2); 
} 

object.rotation.x = Math.PI/2; 
object.position.y = parseInt(default_height*(floor_number-1)); 
scene.add(object);  

にOnclickチェンジカラーコード:

mesh1 not defined

答えて

0
if(path_type=="wall") 
{ 
    var mesh1 = new THREE.Mesh(geometry1, material); 
    object.add(mesh1); 
} 

は、変数mesh1ifに宣言されています。

function color_change(color){ 
mesh1.material.color = new THREE.Color(color);   
mesh1.material.needsUpdate = true; 
} 

が、私はこのエラーを取得しますそのスコープの外部からアクセスすることはできません。あなたは他のfunctions.likeからアクセスするグローバルスコープでそれを宣言する必要があり、この -

var mesh1; 
if(path_type=="wall") 
{ 
    mesh1 = new THREE.Mesh(geometry1, material); 
    object.add(mesh1); 
} 
+0

まだエラーoccuring \t にReferenceError:mesh1は mesh1.material.color =新THREE.Color(色)で定義されていません; –

+0

グローバルスコープで変数を宣言していないと思います。例えば、あなたは 'scene'の同じスコープで変数を宣言しなければなりません。 'var scene;'を宣言した後に変数を宣言することができます。 –

+0

私はグローバル変数ですべてを宣言しましたが、うまくいきません。あなたの電子メールIDを共有できますか?コード全体を送信しますか? –

関連する問題