
Fixed issue where alpha not being set correctly in canvas spriteBatch Fixed issue where previous stage events did not get removed correctly
376 lines
12 KiB
HTML
376 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>src/pixi/loaders/JsonLoader.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/JsonLoader.js</h1>
|
|
|
|
<div class="file">
|
|
<pre class="code prettyprint linenums">
|
|
/**
|
|
* @author Mat Groves http://matgroves.com/ @Doormat23
|
|
*/
|
|
|
|
/**
|
|
* The json file loader is used to load in JSON data and parse it
|
|
* When loaded this class will dispatch a 'loaded' event
|
|
* If loading fails this class will dispatch an 'error' event
|
|
*
|
|
* @class JsonLoader
|
|
* @uses EventTarget
|
|
* @constructor
|
|
* @param url {String} The url of the JSON file
|
|
* @param crossorigin {Boolean} Whether requests should be treated as crossorigin
|
|
*/
|
|
PIXI.JsonLoader = function (url, crossorigin) {
|
|
PIXI.EventTarget.call(this);
|
|
|
|
/**
|
|
* The url of the bitmap font data
|
|
*
|
|
* @property url
|
|
* @type String
|
|
*/
|
|
this.url = url;
|
|
|
|
/**
|
|
* Whether the requests should be treated as cross origin
|
|
*
|
|
* @property crossorigin
|
|
* @type Boolean
|
|
*/
|
|
this.crossorigin = crossorigin;
|
|
|
|
/**
|
|
* [read-only] The base url of the bitmap font data
|
|
*
|
|
* @property baseUrl
|
|
* @type String
|
|
* @readOnly
|
|
*/
|
|
this.baseUrl = url.replace(/[^\/]*$/, '');
|
|
|
|
/**
|
|
* [read-only] Whether the data has loaded yet
|
|
*
|
|
* @property loaded
|
|
* @type Boolean
|
|
* @readOnly
|
|
*/
|
|
this.loaded = false;
|
|
|
|
};
|
|
|
|
// constructor
|
|
PIXI.JsonLoader.prototype.constructor = PIXI.JsonLoader;
|
|
|
|
/**
|
|
* Loads the JSON data
|
|
*
|
|
* @method load
|
|
*/
|
|
PIXI.JsonLoader.prototype.load = function () {
|
|
this.ajaxRequest = new PIXI.AjaxRequest();
|
|
var scope = this;
|
|
this.ajaxRequest.onreadystatechange = function () {
|
|
scope.onJSONLoaded();
|
|
};
|
|
|
|
this.ajaxRequest.open('GET', this.url, true);
|
|
if (this.ajaxRequest.overrideMimeType) this.ajaxRequest.overrideMimeType('application/json');
|
|
this.ajaxRequest.send(null);
|
|
};
|
|
|
|
/**
|
|
* Invoke when JSON file is loaded
|
|
*
|
|
* @method onJSONLoaded
|
|
* @private
|
|
*/
|
|
PIXI.JsonLoader.prototype.onJSONLoaded = function () {
|
|
if (this.ajaxRequest.readyState === 4) {
|
|
if (this.ajaxRequest.status === 200 || window.location.protocol.indexOf('http') === -1) {
|
|
this.json = JSON.parse(this.ajaxRequest.responseText);
|
|
|
|
if(this.json.frames)
|
|
{
|
|
// sprite sheet
|
|
var scope = this;
|
|
var textureUrl = this.baseUrl + this.json.meta.image;
|
|
var image = new PIXI.ImageLoader(textureUrl, this.crossorigin);
|
|
var frameData = this.json.frames;
|
|
|
|
this.texture = image.texture.baseTexture;
|
|
image.addEventListener('loaded', function() {
|
|
scope.onLoaded();
|
|
});
|
|
|
|
for (var i in frameData) {
|
|
var rect = frameData[i].frame;
|
|
if (rect) {
|
|
PIXI.TextureCache[i] = new PIXI.Texture(this.texture, {
|
|
x: rect.x,
|
|
y: rect.y,
|
|
width: rect.w,
|
|
height: rect.h
|
|
});
|
|
|
|
// check to see ifthe sprite ha been trimmed..
|
|
if (frameData[i].trimmed) {
|
|
|
|
var texture = PIXI.TextureCache[i];
|
|
|
|
texture.trimmed = true;
|
|
|
|
var actualSize = frameData[i].sourceSize;
|
|
var realSize = frameData[i].spriteSourceSize;
|
|
|
|
texture.trim.x = realSize.x;
|
|
texture.trim.y = realSize.y;
|
|
texture.trim.realWidth = actualSize.w;
|
|
texture.trim.realHeight = actualSize.h;
|
|
}
|
|
}
|
|
}
|
|
|
|
image.load();
|
|
|
|
}
|
|
else if(this.json.bones)
|
|
{
|
|
// spine animation
|
|
var spineJsonParser = new spine.SkeletonJson();
|
|
var skeletonData = spineJsonParser.readSkeletonData(this.json);
|
|
PIXI.AnimCache[this.url] = skeletonData;
|
|
this.onLoaded();
|
|
}
|
|
else
|
|
{
|
|
this.onLoaded();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.onError();
|
|
}
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Invoke when json file loaded
|
|
*
|
|
* @method onLoaded
|
|
* @private
|
|
*/
|
|
PIXI.JsonLoader.prototype.onLoaded = function () {
|
|
this.loaded = true;
|
|
this.dispatchEvent({
|
|
type: 'loaded',
|
|
content: this
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Invoke when error occured
|
|
*
|
|
* @method onError
|
|
* @private
|
|
*/
|
|
PIXI.JsonLoader.prototype.onError = function () {
|
|
this.dispatchEvent({
|
|
type: 'error',
|
|
content: this
|
|
});
|
|
};
|
|
</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>
|