Rev 1372 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.animation.AnimationSequence");dojo.require("dojo.animation.AnimationEvent");dojo.require("dojo.animation.Animation");dojo.deprecated("dojo.animation.AnimationSequence is slated for removal in 0.5; use dojo.lfx.* instead.", "0.5");dojo.animation.AnimationSequence = function (repeatCount) {this._anims = [];this.repeatCount = repeatCount || 0;};dojo.lang.extend(dojo.animation.AnimationSequence, {repeatCount:0, _anims:[], _currAnim:-1, onBegin:null, onEnd:null, onNext:null, handler:null, add:function () {for (var i = 0; i < arguments.length; i++) {this._anims.push(arguments[i]);arguments[i]._animSequence = this;}}, remove:function (anim) {for (var i = 0; i < this._anims.length; i++) {if (this._anims[i] == anim) {this._anims[i]._animSequence = null;this._anims.splice(i, 1);break;}}}, removeAll:function () {for (var i = 0; i < this._anims.length; i++) {this._anims[i]._animSequence = null;}this._anims = [];this._currAnim = -1;}, clear:function () {this.removeAll();}, play:function (gotoStart) {if (this._anims.length == 0) {return;}if (gotoStart || !this._anims[this._currAnim]) {this._currAnim = 0;}if (this._anims[this._currAnim]) {if (this._currAnim == 0) {var e = {type:"begin", animation:this._anims[this._currAnim]};if (typeof this.handler == "function") {this.handler(e);}if (typeof this.onBegin == "function") {this.onBegin(e);}}this._anims[this._currAnim].play(gotoStart);}}, pause:function () {if (this._anims[this._currAnim]) {this._anims[this._currAnim].pause();}}, playPause:function () {if (this._anims.length == 0) {return;}if (this._currAnim == -1) {this._currAnim = 0;}if (this._anims[this._currAnim]) {this._anims[this._currAnim].playPause();}}, stop:function () {if (this._anims[this._currAnim]) {this._anims[this._currAnim].stop();}}, status:function () {if (this._anims[this._currAnim]) {return this._anims[this._currAnim].status();} else {return "stopped";}}, _setCurrent:function (anim) {for (var i = 0; i < this._anims.length; i++) {if (this._anims[i] == anim) {this._currAnim = i;break;}}}, _playNext:function () {if (this._currAnim == -1 || this._anims.length == 0) {return;}this._currAnim++;if (this._anims[this._currAnim]) {var e = {type:"next", animation:this._anims[this._currAnim]};if (typeof this.handler == "function") {this.handler(e);}if (typeof this.onNext == "function") {this.onNext(e);}this._anims[this._currAnim].play(true);} else {var e = {type:"end", animation:this._anims[this._anims.length - 1]};if (typeof this.handler == "function") {this.handler(e);}if (typeof this.onEnd == "function") {this.onEnd(e);}if (this.repeatCount > 0) {this._currAnim = 0;this.repeatCount--;this._anims[this._currAnim].play(true);} else {if (this.repeatCount == -1) {this._currAnim = 0;this._anims[this._currAnim].play(true);} else {this._currAnim = -1;}}}}});