我只想知道如何使用另一个函数来访问一个函数。因此,如果我有下面的代码,则change函数不会影响加载程序函数。我究竟做错了什么 ?
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 );
}
});
最佳答案
一个函数的局部变量不能从其他函数访问。由于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 );
}
});
关于javascript - 使一个功能影响其他功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34086929/