Newer
Older
pixi.js / src / loaders / SpineTextureLoader.js
@Chad Engler Chad Engler on 12 Jan 2015 1 KB regex replace braces to newline
var core = require('../core');

/**
 * Supporting class to load images from spine atlases as per spine spec.
 *
 * @class
 * @mixes eventTarget
 * @namespace PIXI
 * @param basePath {string} Tha base path where to look for the images to be loaded
 * @param crossorigin {boolean} Whether requests should be treated as crossorigin
 */
function SpineTextureLoader(basePath, crossorigin)
{
    this.basePath = basePath;
    this.crossorigin = crossorigin;
    this.loadingCount = 0;
}

SpineTextureLoader.prototype.constructor = SpineTextureLoader;
module.exports = SpineTextureLoader;

core.utils.eventTarget.mixin(SpineTextureLoader.prototype);

/**
 * Starts loading a base texture as per spine specification
 *
 * @param page {spine.AtlasPage} Atlas page to which texture belongs
 * @param file {string} The file to load, this is just the file path relative to the base path configured in the constructor
 */
SpineTextureLoader.prototype.load = function (page, file)
{
    page.rendererObject = core.BaseTexture.fromImage(this.basePath + '/' + file, this.crossorigin);
    if (!page.rendererObject.hasLoaded)
    {
        var scope = this;
        ++scope.loadingCount;
        page.rendererObject.addEventListener('loaded', function ()
        {
            --scope.loadingCount;
            scope.dispatchEvent({
                type: 'loadedBaseTexture',
                content: scope
            });
        });
    }
};

/**
 * Unloads a previously loaded texture as per spine specification
 *
 * @param texture {BaseTexture} Texture object to destroy
 */
SpineTextureLoader.prototype.unload = function (texture)
{
    texture.destroy(true);
};