load( url, onLoad, onProgress, onError ) {

		const loader = new FileLoader( this.manager );

		loader.setPath( this.path );
		loader.setResponseType( 'arraybuffer' );
		loader.setRequestHeader( this.requestHeader );

		this.url = url;

		loader.load( url, ( buffer ) => {

			// Check for an existing task using this buffer. A transferred buffer cannot be transferred
			// again from this thread.
			if ( _taskCache.has( buffer ) ) {

				const cachedTask = _taskCache.get( buffer );

				return cachedTask.promise.then( onLoad ).catch( onError );

			}

			this.decodeObjects( buffer, url )
				.then( result => {

					result.userData.warnings = this.warnings;
					onLoad( result );

				 } )
				.catch( e => onError( e ) );

		}, onProgress, onError );

	}
Starts loading from the given URL and passes the loaded 3DM asset
to the `onLoad()` callback.

@param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
@param {function(Object3D)} onLoad - Executed when the loading process has been finished.
@param {onProgressCallback} onProgress - Executed while the loading is in progress.
@param {onErrorCallback} onError - Executed when errors occur.