Browse Source

Editor: Fixed support for JSON 2.0 files. Thanks @drewnoakes! See #3035

Mr.doob 12 years ago
parent
commit
fd7302fd13
1 changed files with 47 additions and 39 deletions
  1. 47 39
      editor/index.html

+ 47 - 39
editor/index.html

@@ -237,45 +237,7 @@
 					case 'js':
 					case 'json':
 
-						var reader = new FileReader();
-						reader.addEventListener( 'load', function ( event ) {
-
-							var contents = event.target.result;
-
-							// 2.0
-
-							if ( contents.indexOf( 'postMessage' ) !== -1 ) {
-
-								var blob = new Blob( [ contents ], { type: 'text/javascript' } );
-								var url = URL.createObjectURL( blob );
-
-								var worker = new Worker( url );
-
-								worker.onmessage = function ( event ) {
-
-									event.data.metadata = { 'format': 2 };
-									parseFile( JSON.stringify( event.data ), extension );
-
-								};
-
-								worker.postMessage( new Date().getTime() );
-
-								return;
-
-							}
-
-							// 3.0
-
-							try {
-
-								var data = JSON.parse( contents );
-
-							} catch ( error ) {
-
-								alert( error );
-								return;
-
-							}
+						var handleJSON = function ( data ) {
 
 							if ( data.metadata === undefined ) { // 2.0
 
@@ -329,6 +291,52 @@
 
 							}
 
+						};
+
+						var reader = new FileReader();
+						reader.addEventListener( 'load', function ( event ) {
+
+							var contents = event.target.result;
+
+							// 2.0
+
+							if ( contents.indexOf( 'postMessage' ) !== -1 ) {
+
+								var blob = new Blob( [ contents ], { type: 'text/javascript' } );
+								var url = URL.createObjectURL( blob );
+
+								var worker = new Worker( url );
+
+								worker.onmessage = function ( event ) {
+
+									event.data.metadata = { 'format': 2 };
+									handleJSON( event.data );
+
+								};
+
+								worker.postMessage( Date.now() );
+
+								return;
+
+							}
+
+							// 3.0
+
+							var data;
+
+							try {
+
+								data = JSON.parse( contents );
+
+							} catch ( error ) {
+
+								alert( error );
+								return;
+
+							}
+
+							handleJSON( data );
+
 						}, false );
 						reader.readAsText( file );