Sfoglia il codice sorgente

GLTFLoader: Ensure LoadingManager onLoad is supported.

Don McCurdy 7 anni fa
parent
commit
09765d3426
2 ha cambiato i file con 31 aggiunte e 9 eliminazioni
  1. 27 9
      examples/js/loaders/GLTFLoader.js
  2. 4 0
      examples/webgl_loader_gltf.html

+ 27 - 9
examples/js/loaders/GLTFLoader.js

@@ -27,6 +27,26 @@ THREE.GLTFLoader = ( function () {
 
 			var path = this.path !== undefined ? this.path : THREE.LoaderUtils.extractUrlBase( url );
 
+			var itemGroup = '[group: ' + url + ']';
+
+			scope.manager.itemStart( itemGroup );
+
+			var _onError = function ( e ) {
+
+				if ( onError ) {
+
+					onError( e );
+
+				} else {
+
+					console.error( e );
+
+				}
+
+				scope.manager.itemError( itemGroup );
+
+			};
+
 			var loader = new THREE.FileLoader( scope.manager );
 
 			loader.setResponseType( 'arraybuffer' );
@@ -35,23 +55,21 @@ THREE.GLTFLoader = ( function () {
 
 				try {
 
-					scope.parse( data, path, onLoad, onError );
-
-				} catch ( e ) {
+					scope.parse( data, path, function ( gltf ) {
 
-					if ( onError !== undefined ) {
+						onLoad( gltf );
 
-						onError( e );
+						scope.manager.itemEnd( itemGroup );
 
-					} else {
+					}, _onError );
 
-						throw e;
+				} catch ( e ) {
 
-					}
+					_onError( e );
 
 				}
 
-			}, onProgress, onError );
+			}, onProgress, _onError );
 
 		},
 

+ 4 - 0
examples/webgl_loader_gltf.html

@@ -97,6 +97,10 @@
 
 					scene.add( gltf.scene );
 
+				}, undefined, function ( e ) {
+
+					console.error( e );
+
 				} );
 
 				renderer = new THREE.WebGLRenderer( { antialias: true } );