Skip to content

Commit

Permalink
Merge pull request mrdoob#17327 from Mugen87/dev29
Browse files Browse the repository at this point in the history
ImageLoader: Inherit from Loader.
  • Loading branch information
Mugen87 authored Aug 24, 2019
2 parents 19104b7 + 3d48465 commit 7c47930
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 79 deletions.
27 changes: 4 additions & 23 deletions docs/api/en/loaders/ImageLoader.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:Loader] &rarr;

<h1>[name]</h1>

<p class="desc">
Expand Down Expand Up @@ -65,22 +67,10 @@ <h3>[name]( [param:LoadingManager manager] )</h3>
</p>

<h2>Properties</h2>

<h3>[property:String crossOrigin]</h3>
<p>
If set, assigns the [link:https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes crossOrigin]
attribute of the image to the value of *crossOrigin*, prior to starting the load. Default is *"anonymous"*.
</p>

<h3>[property:LoadingManager manager]</h3>
<p>
The [page:LoadingManager loadingManager] the loader is using. Default is [page:DefaultLoadingManager].
</p>

<h3>[property:String path]</h3>
<p>The base path from which files will be loaded. See [page:.setPath]. Default is *undefined*.</p>
<p>See the base [page:Loader] class for common properties.</p>

<h2>Methods</h2>
<p>See the base [page:Loader] class for common methods.</p>

<h3>[method:HTMLImageElement load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
<p>
Expand All @@ -94,15 +84,6 @@ <h3>[method:HTMLImageElement load]( [param:String url], [param:Function onLoad],
Begin loading from url and return the [page:Image image] object that will contain the data.
</p>

<h3>[method:null setCrossOrigin]( [param:String value] )</h3>
<p>Set the [page:.crossOrigin] attribute.</p>

<h3>[method:FileLoader setPath]( [param:String path] )</h3>
<p>
Set the base path or URL from which to load files. This can be useful if
you are loading many images from the same directory.
</p>

<h2>Source</h2>

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
Expand Down
26 changes: 4 additions & 22 deletions docs/api/zh/loaders/ImageLoader.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:Loader] &rarr;

<h1>[name]</h1>

<p class="desc">
Expand Down Expand Up @@ -65,22 +67,10 @@ <h3>[name]( [param:LoadingManager manager] )</h3>
</p>

<h2>属性</h2>

<h3>[property:String crossOrigin]</h3>
<p>
如果设置了,在开始加载前, 将为图片分配 [link:https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes crossOrigin]
属性,其值为 *crossOrigin*, 默认为"anonymous"。
</p>

<h3>[property:LoadingManager manager]</h3>
<p>
加载器正在使用的[page:LoadingManager loadingManager],默认值为[page:DefaultLoadingManager].
</p>

<h3>[property:String path]</h3>
<p>所要加载文件的基本路径。 请参考[page:.setPath],默认为*undefined*。</p>
<p>See the base [page:Loader] class for common properties.</p>

<h2>方法</h2>
<p>See the base [page:Loader] class for common methods.</p>

<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
<p>
Expand All @@ -94,14 +84,6 @@ <h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Func
从URL中进行加载,并返回将包含数据的[page:Image image]对象。
</p>

<h3>[method:null setCrossOrigin]( [param:String value] )</h3>
<p>设置[page:.crossOrigin]的属性。</p>

<h3>[method:FileLoader setPath]( [param:String path] )</h3>
<p>
设置加载文件的基本路径或URL。当加载同一目录中下的许多图片时,此方法将很有用。
</p>

<h2></h2>

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
Expand Down
15 changes: 2 additions & 13 deletions src/loaders/ImageLoader.d.ts
Original file line number Diff line number Diff line change
@@ -1,30 +1,19 @@
import { Loader } from './Loader';
import { LoadingManager } from './LoadingManager';

/**
* A loader for loading an image.
* Unlike other loaders, this one emits events instead of using predefined callbacks. So if you're interested in getting notified when things happen, you need to add listeners to the object.
*/
export class ImageLoader {
export class ImageLoader extends Loader {

constructor( manager?: LoadingManager );

manager: LoadingManager;
crossOrigin: string;
withCredentials: string;
path: string;

/**
* Begin loading from url
* @param url
*/
load(
url: string,
onLoad?: ( image: HTMLImageElement ) => void,
onProgress?: ( event: ProgressEvent ) => void,
onError?: ( event: ErrorEvent ) => void
): HTMLImageElement;
setCrossOrigin( crossOrigin: string ): ImageLoader;
setWithCredentials( value: string ): ImageLoader;
setPath( value: string ): ImageLoader;

}
25 changes: 4 additions & 21 deletions src/loaders/ImageLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,20 @@
*/

import { Cache } from './Cache.js';
import { DefaultLoadingManager } from './LoadingManager.js';

import { Loader } from './Loader.js';

function ImageLoader( manager ) {

this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;
Loader.call( this, manager );

}

Object.assign( ImageLoader.prototype, {
ImageLoader.prototype = Object.assign( Object.create( Loader.prototype ), {

crossOrigin: 'anonymous',
constructor: ImageLoader,

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

if ( url === undefined ) url = '';

if ( this.path !== undefined ) url = this.path + url;

url = this.manager.resolveURL( url );
Expand Down Expand Up @@ -86,20 +83,6 @@ Object.assign( ImageLoader.prototype, {

return image;

},

setCrossOrigin: function ( value ) {

this.crossOrigin = value;
return this;

},

setPath: function ( value ) {

this.path = value;
return this;

}

} );
Expand Down

0 comments on commit 7c47930

Please sign in to comment.