XHRLoader.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. THREE.XHRLoader = function ( manager ) {
  5. this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
  6. };
  7. THREE.XHRLoader.prototype = {
  8. constructor: THREE.XHRLoader,
  9. load: function ( url, onLoad, onProgress, onError ) {
  10. var scope = this;
  11. var request = new XMLHttpRequest();
  12. if ( onLoad !== undefined ) {
  13. request.addEventListener( 'load', function ( event ) {
  14. onLoad( event.target.responseText );
  15. scope.manager.itemEnd( url );
  16. }, false );
  17. }
  18. if ( onProgress !== undefined ) {
  19. request.addEventListener( 'progress', function ( event ) {
  20. onProgress( event );
  21. }, false );
  22. }
  23. if ( onError !== undefined ) {
  24. request.addEventListener( 'error', function ( event ) {
  25. onError( event );
  26. }, false );
  27. }
  28. if ( this.crossOrigin !== undefined ) request.crossOrigin = this.crossOrigin;
  29. request.open( 'GET', url, true );
  30. request.send( null );
  31. scope.manager.itemStart( url );
  32. },
  33. setCrossOrigin: function ( value ) {
  34. this.crossOrigin = value;
  35. }
  36. };