Spaces:
Running
Running
| /** | |
| * @author mrdoob / http://mrdoob.com/ | |
| */ | |
| function LoadingManager( onLoad, onProgress, onError ) { | |
| var scope = this; | |
| var isLoading = false; | |
| var itemsLoaded = 0; | |
| var itemsTotal = 0; | |
| var urlModifier = undefined; | |
| // Refer to #5689 for the reason why we don't set .onStart | |
| // in the constructor | |
| this.onStart = undefined; | |
| this.onLoad = onLoad; | |
| this.onProgress = onProgress; | |
| this.onError = onError; | |
| this.itemStart = function ( url ) { | |
| itemsTotal ++; | |
| if ( isLoading === false ) { | |
| if ( scope.onStart !== undefined ) { | |
| scope.onStart( url, itemsLoaded, itemsTotal ); | |
| } | |
| } | |
| isLoading = true; | |
| }; | |
| this.itemEnd = function ( url ) { | |
| itemsLoaded ++; | |
| if ( scope.onProgress !== undefined ) { | |
| scope.onProgress( url, itemsLoaded, itemsTotal ); | |
| } | |
| if ( itemsLoaded === itemsTotal ) { | |
| isLoading = false; | |
| if ( scope.onLoad !== undefined ) { | |
| scope.onLoad(); | |
| } | |
| } | |
| }; | |
| this.itemError = function ( url ) { | |
| if ( scope.onError !== undefined ) { | |
| scope.onError( url ); | |
| } | |
| }; | |
| this.resolveURL = function ( url ) { | |
| if ( urlModifier ) { | |
| return urlModifier( url ); | |
| } | |
| return url; | |
| }; | |
| this.setURLModifier = function ( transform ) { | |
| urlModifier = transform; | |
| return this; | |
| }; | |
| } | |
| var DefaultLoadingManager = new LoadingManager(); | |
| export { DefaultLoadingManager, LoadingManager }; | |