Javascript 使用THREE.js中的THREE.BinaryLoader()加载外部模型的方法

Javascript 使用THREE.js中的THREE.BinaryLoader()加载外部模型的方法,javascript,three.js,loader,Javascript,Three.js,Loader,我正在做我的第一步,使用JavaScript编码,也使用Three.js 我有以下代码使用二进制加载程序加载几何体: loader = new THREE.BinaryLoader(); loader.load( "path/to/geometry.js", function ( geometry ) { mesh = new THREE.Mesh(geometry, material); mesh.scale.set( 40, 40, 40 ); scene.add(mesh); } );

我正在做我的第一步,使用JavaScript编码,也使用Three.js

我有以下代码使用二进制加载程序加载几何体:

loader = new THREE.BinaryLoader();
loader.load( "path/to/geometry.js", function ( geometry ) {

mesh = new THREE.Mesh(geometry, material);
mesh.scale.set( 40, 40, 40 );
scene.add(mesh);

} );
但是如果我想将
mesh
添加到全局范围,该怎么办?我编写了此代码,但不起作用:

loader = new THREE.BinaryLoader();
geometry = loader.load( "path/to/geometry.js");

mesh = new THREE.Mesh(geometry, material);
mesh.scale.set( 40, 40, 40 );
scene.add(mesh);

您有什么建议吗?

您不能这样做,因为
BinaryLoader.load
是异步的。由于没有使用
var
声明变量,
mesh
一开始就已经在全局范围内。问题是加载完成后,
mesh
会被分配。您不能这样做,因为
BinaryLoader.load
是异步的。由于没有使用
var
声明变量,
mesh
一开始就已经在全局范围内。问题是加载完成后,
mesh
将在稍后分配。