| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- THREE.XHRLoader = function ( manager ) {
- this.cache = new THREE.Cache();
- this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
- };
- THREE.XHRLoader.prototype = {
- constructor: THREE.XHRLoader,
- load: function ( url, onLoad, onProgress, onError ) {
- var scope = this;
- var cached = scope.cache.get( url );
- if ( cached !== undefined ) {
- if ( onLoad ) onLoad( cached );
- return;
- }
- var request = new XMLHttpRequest();
- request.open( 'GET', url, true );
- request.addEventListener( 'load', function ( event ) {
- scope.cache.add( url, this.response );
- if ( onLoad ) onLoad( this.response );
- scope.manager.itemEnd( url );
- }, false );
- if ( onProgress !== undefined ) {
- request.addEventListener( 'progress', function ( event ) {
- onProgress( event );
- }, false );
- }
- if ( onError !== undefined ) {
- request.addEventListener( 'error', function ( event ) {
- onError( event );
- }, false );
- }
- if ( this.crossOrigin !== undefined ) request.crossOrigin = this.crossOrigin;
- if ( this.responseType !== undefined ) request.responseType = this.responseType;
- request.send( null );
- scope.manager.itemStart( url );
- },
- setResponseType: function ( value ) {
- this.responseType = value;
- },
- setCrossOrigin: function ( value ) {
- this.crossOrigin = value;
- }
- };
|