我只想知道如何使用其他功能访问某个功能。因此,如果我有下面的代码,更改功能不会影响加载器功能。我做错了什么?
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 );
}
});
答案 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 );
}
});