|
@@ -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 = {
|
|
|
|
|
|
}
|
|
|
|
|
|
-};
|
|
|
+};
|