File:BitmapMovieClipTask.js
/**
* @module EaselJS Animation
* @namespace springroll.easeljs
* @requires Core, Animation, EaselJS Display
*/
(function()
{
var TextureAtlasTask = include('springroll.easeljs.TextureAtlasTask'),
BitmapMovieClip = include('springroll.easeljs.BitmapMovieClip');
/**
* Internal class for loading an instantiating a BitmapMovieClip.
* @class BitmapMovieClipTask
* @extends springroll.TextureAtlasTask
* @constructor
* @private
* @param {Object} asset The data properties
* @param {String} asset.anim Path to the JSON configuration for BitmapMovieClip
* @param {String} asset.atlas The TextureAtlas source data
* @param {Boolean} [asset.cache=false] If we should cache the result
* @param {String} [asset.image] The atlas image path
* @param {String} [asset.color] The color image path, if not using image property
* @param {String} [asset.alpha] The alpha image path, if not using image property
* @param {String} [asset.id] Id of asset
* @param {Function} [asset.complete] The event to call when done
* @param {Object} [asset.sizes=null] Define if certain sizes are not supported
*/
var BitmapMovieClipTask = function(asset)
{
TextureAtlasTask.call(this, asset);
/**
* The BitmapMovieClip data source path
* @property {String} anim
*/
this.anim = this.filter(asset.anim);
};
// Reference to prototype
var p = TextureAtlasTask.extend(BitmapMovieClipTask);
/**
* Test if we should run this task
* @method test
* @static
* @param {Object} asset The asset to check
* @return {Boolean} If the asset is compatible with this asset
*/
BitmapMovieClipTask.test = function(asset)
{
return asset.anim && TextureAtlasTask.test(asset);
};
/**
* Start the task
* @method start
* @param {Function} callback Callback when finished
*/
p.start = function(callback)
{
this.loadAtlas(
{
_anim: this.anim
}, function(textureAtlas, results)
{
callback(new BitmapMovieClip(
textureAtlas,
results._anim
), results);
});
};
// Assign to namespace
namespace('springroll.easeljs').BitmapMovieClipTask = BitmapMovieClipTask;
}());