Prechádzať zdrojové kódy

Implemented LoadingManager in ObjectLoader.

Mr.doob 12 rokov pred
rodič
commit
762e4e9bf9

+ 12 - 27
examples/js/loaders/ObjectLoader.js

@@ -2,44 +2,29 @@
  * @author mrdoob / http://mrdoob.com/
  */
 
-THREE.ObjectLoader = function () {};
+THREE.ObjectLoader = function ( manager ) {
+
+	this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
+
+};
 
 THREE.ObjectLoader.prototype = {
 
 	constructor: THREE.ObjectLoader,
 
-	addEventListener: THREE.EventDispatcher.prototype.addEventListener,
-	hasEventListener: THREE.EventDispatcher.prototype.hasEventListener,
-	removeEventListener: THREE.EventDispatcher.prototype.removeEventListener,
-	dispatchEvent: THREE.EventDispatcher.prototype.dispatchEvent,
-
-	load: function ( url ) {
+	load: function ( url, callback ) {
 
 		var scope = this;
-		var request = new XMLHttpRequest();
-
-		request.addEventListener( 'load', function ( event ) {
-
-			var response = scope.parse( JSON.parse( event.target.responseText ) );
 
-			scope.dispatchEvent( { type: 'load', content: response } );
+		this.manager.add( url, 'text', function ( event ) {
 
-		}, false );
+			if ( callback !== undefined ) {
 
-		request.addEventListener( 'progress', function ( event ) {
+				callback( scope.parse( JSON.parse( event.target.responseText ) ) );
 
-			scope.dispatchEvent( { type: 'progress', loaded: event.loaded, total: event.total } );
-
-		}, false );
-
-		request.addEventListener( 'error', function () {
-
-			scope.dispatchEvent( { type: 'error', message: 'Couldn\'t load URL [' + url + ']' } );
-
-		}, false );
+			}
 
-		request.open( 'GET', url, true );
-		request.send( null );
+		} );
 
 	},
 
@@ -300,4 +285,4 @@ THREE.ObjectLoader.prototype = {
 
 	}
 
-};
+};

+ 1 - 2
src/loaders/GeometryLoader.js

@@ -20,8 +20,7 @@ THREE.GeometryLoader.prototype = {
 
 			if ( callback !== undefined ) {
 
-				var geometry = scope.parse( JSON.parse( event.target.responseText ) );
-				callback( geometry );
+				callback( scope.parse( JSON.parse( event.target.responseText ) ) );
 
 			}
 

+ 1 - 2
src/loaders/MaterialLoader.js

@@ -20,8 +20,7 @@ THREE.MaterialLoader.prototype = {
 
 			if ( callback !== undefined ) {
 
-				var material = scope.parse( JSON.parse( event.target.responseText ) );
-				callback( material );
+				callback( scope.parse( JSON.parse( event.target.responseText ) ) );
 
 			}