Actionscript _Animate Class
1 2 import _String; 3 4 dynamic class _Animate { 5 var queue:Array; 6 7 function _Animate() { 8 queue = null; 9 } 10 11 public function caller(qNum){ 12 var gA = this; 13 var callback = queue[qNum].func.apply(this, _String.toArray(queue[qNum].params)); qNum++; 14 if (qNum < queue.length && callback) callback.onMotionStopped = function() { gA.caller(qNum); } 15 else if (qNum < queue.length && !callback) gA.caller(qNum); 16 } 17 18 public function launch(){ caller(0); } 19 20 21 }
Sample Usage
1 2 var zoomIn = new _Animate(); 3 4 zoomIn.queue = [ 5 {func:aniSidebar, params:"hide,6"}, 6 {func:aniMapMidFade, params:"hide,6"} 7 ]; 8 9 zoomIn.launch(); 10 11 function aniSidebar(action, time){ 12 var leftBeginX = (action == "hide") ? 0 : 0 - sidebarLeftBg._width; 13 var leftEndX = (action == "hide") ? 0 - sidebarLeftBg._width : 0; 14 var rightBeginX = (action == "hide") ? Stage.width - sidebarRightBg._width : Stage.width; 15 var rightEndX = (action == "hide") ? Stage.width : Stage.width - sidebarRightBg._width; 16 var transition = mx.transitions.easing.Regular.easeInOut; 17 var leftAni = new mx.transitions.Tween(sidebarLeftBg, "_x", transition, leftBeginX, leftEndX, time); 18 var rightAni = new mx.transitions.Tween(sidebarRightBg, "_x", transition, rightBeginX, rightEndX, time); 19 return rightAni; 20 } 21 22 function aniMapMidFade(action, time){ 23 var begin = (action == "hide") ? 100 : 0; 24 var end = (action == "hide") ? 0 : 100; 25 var transition = mx.transitions.easing.Regular.easeOut; 26 var mapMidAni = new mx.transitions.Tween(mapMid, "_alpha", transition, begin, end, time); 27 return mapMidAni; 28 } 29