|
@@ -0,0 +1,51 @@
|
|
|
|
+/**
|
|
|
|
+ * @author mrdoob / http://mrdoob.com/
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+THREE.MaterialLoader = function () {
|
|
|
|
+
|
|
|
|
+ THREE.EventDispatcher.call( this );
|
|
|
|
+
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+THREE.MaterialLoader.prototype = {
|
|
|
|
+
|
|
|
|
+ constructor: THREE.MaterialLoader,
|
|
|
|
+
|
|
|
|
+ load: function ( url ) {
|
|
|
|
+
|
|
|
|
+ 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 } );
|
|
|
|
+
|
|
|
|
+ }, false );
|
|
|
|
+
|
|
|
|
+ request.addEventListener( 'progress', function ( event ) {
|
|
|
|
+
|
|
|
|
+ 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 );
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ parse: function ( json ) {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+};
|