Skip to content

Commit

Permalink
Changed how loader plugins work.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lanny McNie committed Dec 8, 2014
1 parent dc3c5ef commit 1db7625
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
17 changes: 13 additions & 4 deletions examples/CustomLoader.html
Expand Up @@ -33,12 +33,21 @@ <h1><span class="text-product">Preload<strong>JS</strong></span> Custom Loader</
// Static Plugin Methods
CustomLoader.getPreloadHandlers = function() {
return {
loaders: [this]
types: ["image"],
callback: CustomLoader.preloadHandler
};
};
CustomLoader.canLoadItem = function(item) {
return (item.type === "image");
}
CustomLoader.preloadHandler = function(src) {
var loader = new CustomLoader(src);
loader.on("complete", CustomLoader.handleComplete, CustomLoader);
return {
loader: loader
}
};
CustomLoader.handleComplete = function(event) {
var img = event.result;
img.width = img.height = 200;
};

// Loader Methods
var p = createjs.extend(CustomLoader, createjs.AbstractLoader);
Expand Down
19 changes: 11 additions & 8 deletions src/preloadjs/LoadQueue.js
Expand Up @@ -973,12 +973,6 @@ this.createjs = this.createjs || {};
this._extensionCallbacks[map.extensions[i]] = map;
}
}

if (map.loaders != null) {
for (var i=map.loaders.length-1; i>=0; i--) { // Reverse to maintain order
this.registerLoader(plugin);
}
}
}
};

Expand Down Expand Up @@ -1392,7 +1386,12 @@ this.createjs = this.createjs || {};
if (result.tag != null) { // Assumes that the returned tag either has a load method or a src setter.
item.tag = result.tag;
}
if (result.completeHandler != null) { item.completeHandler = result.completeHandler; }
if (result.completeHandler != null) {
item.completeHandler = result.completeHandler;
}
if (result.loader != null) {
item._loader = result.loader;
}

// Allow type overriding:
if (result.type) { item.type = result.type; }
Expand Down Expand Up @@ -1426,6 +1425,10 @@ this.createjs = this.createjs || {};
* @private
*/
p._createLoader = function (item) {
if (item._loader != null) {
return item._loader;
}

// Initially, try and use the provided/supported XHR mode:
var preferXHR = this.preferXHR;

Expand All @@ -1436,7 +1439,7 @@ this.createjs = this.createjs || {};
}
}

// TODO Throw error? LM: Yes
// TODO: Log error (requires createjs.log)
return null;
};

Expand Down

0 comments on commit 1db7625

Please sign in to comment.