
Fixed issue where alpha not being set correctly in canvas spriteBatch Fixed issue where previous stage events did not get removed correctly
356 lines
12 KiB
HTML
356 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>src/pixi/loaders/AssetLoader.js - pixi.js</title>
|
|
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
|
|
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
|
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
|
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
|
|
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
|
|
</head>
|
|
<body class="yui3-skin-sam">
|
|
|
|
<div id="doc">
|
|
<div id="hd" class="yui3-g header">
|
|
<div class="yui3-u-3-4">
|
|
|
|
<h1><img src="http://www.goodboydigital.com/pixijs/logo_small.png" title="pixi.js"></h1>
|
|
|
|
</div>
|
|
<div class="yui3-u-1-4 version">
|
|
<em>API Docs for: 1.4.3</em>
|
|
</div>
|
|
</div>
|
|
<div id="bd" class="yui3-g">
|
|
|
|
<div class="yui3-u-1-4">
|
|
<div id="docs-sidebar" class="sidebar apidocs">
|
|
<div id="api-list">
|
|
<h2 class="off-left">APIs</h2>
|
|
<div id="api-tabview" class="tabview">
|
|
<ul class="tabs">
|
|
<li><a href="#api-classes">Classes</a></li>
|
|
<li><a href="#api-modules">Modules</a></li>
|
|
</ul>
|
|
|
|
<div id="api-tabview-filter">
|
|
<input type="search" id="api-filter" placeholder="Type to filter APIs">
|
|
</div>
|
|
|
|
<div id="api-tabview-panel">
|
|
<ul id="api-classes" class="apis classes">
|
|
|
|
<li><a href="../classes/AbstractFilter.html">AbstractFilter</a></li>
|
|
|
|
<li><a href="../classes/AlphaMaskFilter.html">AlphaMaskFilter</a></li>
|
|
|
|
<li><a href="../classes/AssetLoader.html">AssetLoader</a></li>
|
|
|
|
<li><a href="../classes/AtlasLoader.html">AtlasLoader</a></li>
|
|
|
|
<li><a href="../classes/BaseTexture.html">BaseTexture</a></li>
|
|
|
|
<li><a href="../classes/BitmapFontLoader.html">BitmapFontLoader</a></li>
|
|
|
|
<li><a href="../classes/BitmapText.html">BitmapText</a></li>
|
|
|
|
<li><a href="../classes/BlurFilter.html">BlurFilter</a></li>
|
|
|
|
<li><a href="../classes/CanvasGraphics.html">CanvasGraphics</a></li>
|
|
|
|
<li><a href="../classes/CanvasRenderer.html">CanvasRenderer</a></li>
|
|
|
|
<li><a href="../classes/Circle.html">Circle</a></li>
|
|
|
|
<li><a href="../classes/ColorMatrixFilter.html">ColorMatrixFilter</a></li>
|
|
|
|
<li><a href="../classes/ColorStepFilter.html">ColorStepFilter</a></li>
|
|
|
|
<li><a href="../classes/DisplacementFilter.html">DisplacementFilter</a></li>
|
|
|
|
<li><a href="../classes/DisplayObject.html">DisplayObject</a></li>
|
|
|
|
<li><a href="../classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
|
|
|
|
<li><a href="../classes/DotScreenFilter.html">DotScreenFilter</a></li>
|
|
|
|
<li><a href="../classes/Ellipse.html">Ellipse</a></li>
|
|
|
|
<li><a href="../classes/EventTarget.html">EventTarget</a></li>
|
|
|
|
<li><a href="../classes/Graphics.html">Graphics</a></li>
|
|
|
|
<li><a href="../classes/GrayFilter.html">GrayFilter</a></li>
|
|
|
|
<li><a href="../classes/ImageLoader.html">ImageLoader</a></li>
|
|
|
|
<li><a href="../classes/InvertFilter.html">InvertFilter</a></li>
|
|
|
|
<li><a href="../classes/JsonLoader.html">JsonLoader</a></li>
|
|
|
|
<li><a href="../classes/MovieClip.html">MovieClip</a></li>
|
|
|
|
<li><a href="../classes/PixelateFilter.html">PixelateFilter</a></li>
|
|
|
|
<li><a href="../classes/PIXI.PixiFastShader.html">PIXI.PixiFastShader</a></li>
|
|
|
|
<li><a href="../classes/PIXI.PixiShader.html">PIXI.PixiShader</a></li>
|
|
|
|
<li><a href="../classes/Point.html">Point</a></li>
|
|
|
|
<li><a href="../classes/Polygon.html">Polygon</a></li>
|
|
|
|
<li><a href="../classes/PolyK._convex.html">PolyK._convex</a></li>
|
|
|
|
<li><a href="../classes/PolyK._PointInTriangle.html">PolyK._PointInTriangle</a></li>
|
|
|
|
<li><a href="../classes/PolyK.AjaxRequest.html">PolyK.AjaxRequest</a></li>
|
|
|
|
<li><a href="../classes/PolyK.InteractionData.html">PolyK.InteractionData</a></li>
|
|
|
|
<li><a href="../classes/PolyK.InteractionManager.html">PolyK.InteractionManager</a></li>
|
|
|
|
<li><a href="../classes/Rectangle.html">Rectangle</a></li>
|
|
|
|
<li><a href="../classes/RenderTexture.html">RenderTexture</a></li>
|
|
|
|
<li><a href="../classes/SepiaFilter.html">SepiaFilter</a></li>
|
|
|
|
<li><a href="../classes/Spine.html">Spine</a></li>
|
|
|
|
<li><a href="../classes/Sprite.html">Sprite</a></li>
|
|
|
|
<li><a href="../classes/SpriteSheetLoader.html">SpriteSheetLoader</a></li>
|
|
|
|
<li><a href="../classes/Stage.html">Stage</a></li>
|
|
|
|
<li><a href="../classes/Text.html">Text</a></li>
|
|
|
|
<li><a href="../classes/Texture.html">Texture</a></li>
|
|
|
|
<li><a href="../classes/TilingSprite.html">TilingSprite</a></li>
|
|
|
|
<li><a href="../classes/TwistFilter.html">TwistFilter</a></li>
|
|
|
|
<li><a href="../classes/WebGLRenderer.html">WebGLRenderer</a></li>
|
|
|
|
</ul>
|
|
|
|
<ul id="api-modules" class="apis modules">
|
|
|
|
<li><a href="../modules/PIXI.html">PIXI</a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="yui3-u-3-4">
|
|
<div id="api-options">
|
|
Show:
|
|
<label for="api-show-inherited">
|
|
<input type="checkbox" id="api-show-inherited" checked>
|
|
Inherited
|
|
</label>
|
|
|
|
<label for="api-show-protected">
|
|
<input type="checkbox" id="api-show-protected">
|
|
Protected
|
|
</label>
|
|
|
|
<label for="api-show-private">
|
|
<input type="checkbox" id="api-show-private">
|
|
Private
|
|
</label>
|
|
<label for="api-show-deprecated">
|
|
<input type="checkbox" id="api-show-deprecated">
|
|
Deprecated
|
|
</label>
|
|
|
|
</div>
|
|
|
|
|
|
<div class="apidocs">
|
|
<div id="docs-main">
|
|
<div class="content">
|
|
<h1 class="file-heading">File: src/pixi/loaders/AssetLoader.js</h1>
|
|
|
|
<div class="file">
|
|
<pre class="code prettyprint linenums">
|
|
/**
|
|
* @author Mat Groves http://matgroves.com/ @Doormat23
|
|
*/
|
|
|
|
/**
|
|
* A Class that loads a bunch of images / sprite sheet / bitmap font files. Once the
|
|
* assets have been loaded they are added to the PIXI Texture cache and can be accessed
|
|
* easily through PIXI.Texture.fromImage() and PIXI.Sprite.fromImage()
|
|
* When all items have been loaded this class will dispatch a 'onLoaded' event
|
|
* As each individual item is loaded this class will dispatch a 'onProgress' event
|
|
*
|
|
* @class AssetLoader
|
|
* @constructor
|
|
* @uses EventTarget
|
|
* @param {Array<String>} assetURLs an array of image/sprite sheet urls that you would like loaded
|
|
* supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported
|
|
* sprite sheet data formats only include 'JSON' at this time. Supported bitmap font
|
|
* data formats include 'xml' and 'fnt'.
|
|
* @param crossorigin {Boolean} Whether requests should be treated as crossorigin
|
|
*/
|
|
PIXI.AssetLoader = function(assetURLs, crossorigin)
|
|
{
|
|
PIXI.EventTarget.call(this);
|
|
|
|
/**
|
|
* The array of asset URLs that are going to be loaded
|
|
*
|
|
* @property assetURLs
|
|
* @type Array<String>
|
|
*/
|
|
this.assetURLs = assetURLs;
|
|
|
|
/**
|
|
* Whether the requests should be treated as cross origin
|
|
*
|
|
* @property crossorigin
|
|
* @type Boolean
|
|
*/
|
|
this.crossorigin = crossorigin;
|
|
|
|
/**
|
|
* Maps file extension to loader types
|
|
*
|
|
* @property loadersByType
|
|
* @type Object
|
|
*/
|
|
this.loadersByType = {
|
|
'jpg': PIXI.ImageLoader,
|
|
'jpeg': PIXI.ImageLoader,
|
|
'png': PIXI.ImageLoader,
|
|
'gif': PIXI.ImageLoader,
|
|
'json': PIXI.JsonLoader,
|
|
'atlas': PIXI.AtlasLoader,
|
|
'anim': PIXI.SpineLoader,
|
|
'xml': PIXI.BitmapFontLoader,
|
|
'fnt': PIXI.BitmapFontLoader
|
|
};
|
|
};
|
|
|
|
/**
|
|
* Fired when an item has loaded
|
|
* @event onProgress
|
|
*/
|
|
|
|
/**
|
|
* Fired when all the assets have loaded
|
|
* @event onComplete
|
|
*/
|
|
|
|
// constructor
|
|
PIXI.AssetLoader.prototype.constructor = PIXI.AssetLoader;
|
|
|
|
|
|
PIXI.AssetLoader.prototype._getDataType = function(str)
|
|
{
|
|
var test = 'data:';
|
|
//starts with 'data:'
|
|
var start = str.slice(0, test.length).toLowerCase();
|
|
if (start === test) {
|
|
var data = str.slice(test.length);
|
|
|
|
var sepIdx = data.indexOf(',');
|
|
if (sepIdx === -1) //malformed data URI scheme
|
|
return null;
|
|
|
|
//e.g. 'image/gif;base64' => 'image/gif'
|
|
var info = data.slice(0, sepIdx).split(';')[0];
|
|
|
|
//We might need to handle some special cases here...
|
|
//standardize text/plain to 'txt' file extension
|
|
if (!info || info.toLowerCase() === 'text/plain')
|
|
return 'txt';
|
|
|
|
//User specified mime type, try splitting it by '/'
|
|
return info.split('/').pop().toLowerCase();
|
|
}
|
|
|
|
return null;
|
|
};
|
|
|
|
/**
|
|
* Starts loading the assets sequentially
|
|
*
|
|
* @method load
|
|
*/
|
|
PIXI.AssetLoader.prototype.load = function()
|
|
{
|
|
var scope = this;
|
|
|
|
function onLoad() {
|
|
scope.onAssetLoaded();
|
|
}
|
|
|
|
this.loadCount = this.assetURLs.length;
|
|
|
|
for (var i=0; i < this.assetURLs.length; i++)
|
|
{
|
|
var fileName = this.assetURLs[i];
|
|
//first see if we have a data URI scheme..
|
|
var fileType = this._getDataType(fileName);
|
|
|
|
//if not, assume it's a file URI
|
|
if (!fileType)
|
|
fileType = fileName.split('?').shift().split('.').pop().toLowerCase();
|
|
|
|
var Constructor = this.loadersByType[fileType];
|
|
if(!Constructor)
|
|
throw new Error(fileType + ' is an unsupported file type');
|
|
|
|
var loader = new Constructor(fileName, this.crossorigin);
|
|
|
|
loader.addEventListener('loaded', onLoad);
|
|
loader.load();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Invoked after each file is loaded
|
|
*
|
|
* @method onAssetLoaded
|
|
* @private
|
|
*/
|
|
PIXI.AssetLoader.prototype.onAssetLoaded = function()
|
|
{
|
|
this.loadCount--;
|
|
this.dispatchEvent({type: 'onProgress', content: this});
|
|
if (this.onProgress) this.onProgress();
|
|
|
|
if (!this.loadCount)
|
|
{
|
|
this.dispatchEvent({type: 'onComplete', content: this});
|
|
if(this.onComplete) this.onComplete();
|
|
}
|
|
};
|
|
|
|
</pre>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
|
<script>prettyPrint();</script>
|
|
<script src="../assets/js/yui-prettify.js"></script>
|
|
<script src="../assets/../api.js"></script>
|
|
<script src="../assets/js/api-filter.js"></script>
|
|
<script src="../assets/js/api-list.js"></script>
|
|
<script src="../assets/js/api-search.js"></script>
|
|
<script src="../assets/js/apidocs.js"></script>
|
|
</body>
|
|
</html>
|