制作功能会影响其他功能

时间:2015-12-04 11:06:09

标签: javascript jquery

我只想知道如何使用其他功能访问某个功能。因此,如果我有下面的代码,更改功能不会影响加载器功能。我做错了什么?

var loader = new THREE.JSONLoader();

loader.load( "test.js", function(geometry, materials){
var mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
scene.add(mesh);
});

  $('input').change(function() {

    if($("#radio").is(":checked")){
    mesh.material.materials[ 0 ].color.set( 0xff0000 );
    mesh.material.materials[ 1 ].color.set( 0x111111 );
  }

  });

1 个答案:

答案 0 :(得分:3)

无法从其他功能访问函数的局部变量。由于javascript函数是closures,因此您可以使用两个函数共享的变量:

var loader = new THREE.JSONLoader();
var mesh;

loader.load( "test.js", function(geometry, materials){
  mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
  scene.add(mesh);
});

$('input').change(function() {
  if($("#radio").is(":checked")){
    mesh.material.materials[ 0 ].color.set( 0xff0000 );
    mesh.material.materials[ 1 ].color.set( 0x111111 );
  }
});