New file |
0,0 → 1,126 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
|
Licensed under the Academic Free License version 2.1 or above OR the |
modified 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; |
} |
} |
} |
}}); |
|