67 lines
1009 B
JavaScript
67 lines
1009 B
JavaScript
import { AnimationClip } from '../animation/AnimationClip.js';
|
|
import { FileLoader } from './FileLoader.js';
|
|
import { Loader } from './Loader.js';
|
|
|
|
class AnimationLoader extends Loader {
|
|
|
|
constructor( manager ) {
|
|
|
|
super( manager );
|
|
|
|
}
|
|
|
|
load( url, onLoad, onProgress, onError ) {
|
|
|
|
const scope = this;
|
|
|
|
const loader = new FileLoader( this.manager );
|
|
loader.setPath( this.path );
|
|
loader.setRequestHeader( this.requestHeader );
|
|
loader.setWithCredentials( this.withCredentials );
|
|
loader.load( url, function ( text ) {
|
|
|
|
try {
|
|
|
|
onLoad( scope.parse( JSON.parse( text ) ) );
|
|
|
|
} catch ( e ) {
|
|
|
|
if ( onError ) {
|
|
|
|
onError( e );
|
|
|
|
} else {
|
|
|
|
console.error( e );
|
|
|
|
}
|
|
|
|
scope.manager.itemError( url );
|
|
|
|
}
|
|
|
|
}, onProgress, onError );
|
|
|
|
}
|
|
|
|
parse( json ) {
|
|
|
|
const animations = [];
|
|
|
|
for ( let i = 0; i < json.length; i ++ ) {
|
|
|
|
const clip = AnimationClip.parse( json[ i ] );
|
|
|
|
animations.push( clip );
|
|
|
|
}
|
|
|
|
return animations;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
export { AnimationLoader };
|