ImageLoader.js 917 字节
Newer Older
M
Mr.doob 已提交
1 2 3 4
/**
 * @author mrdoob / http://mrdoob.com/
 */

M
Mr.doob 已提交
5
THREE.ImageLoader = function ( manager ) {
M
Mr.doob 已提交
6

M
Mr.doob 已提交
7
	this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
M
Mr.doob 已提交
8

9 10
};

M
Mr.doob 已提交
11
Object.assign( THREE.ImageLoader.prototype, {
12

13
	load: function ( url, onLoad, onProgress, onError ) {
14

15
		var image = document.createElement( 'img' );
16
		image.onload = function () {
M
Mr.doob 已提交
17

18 19
			URL.revokeObjectURL( image.src );
			if ( onLoad ) onLoad( image );
20

21
		};
22

23
		if ( url.indexOf( 'data:' ) === 0 ) {
24

25
			image.src = url;
26

27
		} else {
M
Mr.doob 已提交
28

29 30 31 32 33 34 35 36 37 38
			var loader = new THREE.XHRLoader( this.manager );
			loader.setPath( this.path );
			loader.setResponseType( 'blob' );
			loader.load( url, function ( blob ) {

				image.src = URL.createObjectURL( blob );

			}, onProgress, onError );

		}
39

40 41
		return image;

M
Mr.doob 已提交
42 43 44 45 46
	},

	setCrossOrigin: function ( value ) {

		this.crossOrigin = value;
M
Mr.doob 已提交
47

M
Mr.doob 已提交
48 49 50 51 52 53
	},

	setPath: function ( value ) {

		this.path = value;

M
Mr.doob 已提交
54
	}
M
Mr.doob 已提交
55

M
Mr.doob 已提交
56
} );