/** * @author Mat Groves http://matgroves.com/ */ var PIXI = PIXI || {}; /** * @class A MovieClip is a simple way to display an animation depicted by a list of textures. * @augments PIXI.Sprite * @param an array of textures that make up the animation * @return {PIXI.MovieClip} texture {@link PIXI.MovieClip} */ PIXI.MovieClip = function(textures) { PIXI.Sprite.call( this, textures[0]); /** * The array of textures that make up the animation * @type Array */ this.textures = textures; /** * [read only] The index MovieClips current frame (this may not have to be a whole number) * @type Number */ this.currentFrame = 0; /** * The speed that the MovieClip will play at. Higher is faster, lower is slower * @type Number */ this.animationSpeed = 1; /** * [read only] indicates if the MovieClip is currently playing * @type Boolean */ this.playing; } // constructor PIXI.MovieClip.constructor = PIXI.MovieClip; PIXI.MovieClip.prototype = Object.create( PIXI.Sprite.prototype ); /** * Stops the MovieClip */ PIXI.MovieClip.prototype.stop = function() { this.playing = false; } /** * Plays the MovieClip */ PIXI.MovieClip.prototype.play = function() { this.playing = true; } /** * Stops the MovieClip and goes to a specific frame * @param frame index to stop at */ PIXI.MovieClip.prototype.gotoAndStop = function(frameNumber) { this.playing = false; this.currentFrame = frameNumber; var round = (this.currentFrame + 0.5) | 0; this.setTexture(this.textures[round % this.textures.length]); } /** * Goes to a specific frame and begins playing the MovieClip * @param frame index to start at */ PIXI.MovieClip.prototype.gotoAndPlay = function(frameNumber) { this.currentFrame = frameNumber; this.playing = true; } PIXI.MovieClip.prototype.updateTransform = function() { PIXI.Sprite.prototype.updateTransform.call(this); if(!this.playing)return; this.currentFrame += this.animationSpeed; var round = (this.currentFrame + 0.5) | 0; this.setTexture(this.textures[round % this.textures.length]); }