Question : AS3: TweenLite onComplete fires at begining instead of at the end of the tween...

I have several mc's wrapped into one mc.  on MOUSE_OVER they animate out, and on MOUSE_OUT they animate back in.  This works fine.  What I need to add now is a tween at the end of the MOUSE_OVER.  Refer to my code...

I dont want the following:
TweenLite.to(ants_mc, .8, {alpha:1, delay:.5, ease:Strong.easeOut});
to begin until the :
TweenLite.to(crosshair_mc.bottomLeft_mc, .5, {y:-41.6, x:41, ease:Back.easeIn});
      TweenLite.to(crosshair_mc.bottomRight_mc, .5, {y:-41.6, x:-41.6, ease:Back.easeIn});
      TweenLite.to(crosshair_mc.topLeft_mc, .5, {y:41.6, x:41.6, ease:Back.easeIn});
      TweenLite.to(crosshair_mc.topRight_mc, .5, {y:41.6, x:-41.6, ease:Back.easeIn, onComplete:});
have all completed...

I have added in an onComplete in several different fashions, but all are firing at the beginning of the tween, yet I need it to wait until the other tweens have completed.  I have also tried adding in an onComplete add function but I am having the same problems...

Please take a look and throw out any suggestions that come to mind...

Thanks...
Code Snippet:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
crosshair_mc.buttonMode = true;
ants_mc.alpha = 0;
crosshair_mc.addEventListener(MouseEvent.MOUSE_OVER, RollOver);
function RollOver(event:MouseEvent):void {
	TweenLite.to(crosshair_mc.bottomLeft_mc, .5, {y:-41.6, x:41, ease:Back.easeIn});
	TweenLite.to(crosshair_mc.bottomRight_mc, .5, {y:-41.6, x:-41.6, ease:Back.easeIn});
	TweenLite.to(crosshair_mc.topLeft_mc, .5, {y:41.6, x:41.6, ease:Back.easeIn});
	TweenLite.to(crosshair_mc.topRight_mc, .5, {y:41.6, x:-41.6, ease:Back.easeIn, onComplete:});
	TweenLite.to(ants_mc, .8, {alpha:1, delay:.5, ease:Strong.easeOut});
}
 
crosshair_mc.addEventListener(MouseEvent.MOUSE_OUT, RollOut);
function RollOut(event:MouseEvent):void {
 
	TweenLite.to(crosshair_mc.bottomLeft_mc, .7, {y:0, x:0, ease:Back.easeInOut});
	TweenLite.to(crosshair_mc.bottomRight_mc, .7, {y:0, x:0, ease:Back.easeInOut});
	TweenLite.to(crosshair_mc.topLeft_mc, .7, {y:0, x:0, ease:Back.easeInOut});
	TweenLite.to(crosshair_mc.topRight_mc, .7, {y:0, x:0, ease:Back.easeInOut});
	TweenLite.to(ants_mc, .2, {alpha:0, ease:Strong.easeOut});
}
Open in New Window Select All

Answer : AS3: TweenLite onComplete fires at begining instead of at the end of the tween...

Hi cubical38

May be you can try to delay the execution of the code using enterFrame and timer, for example if the four line of code takes 3 second to complete then set a timer for 3 second the fire the last line of code.

See the code snipper hope it can help you out.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function RollOver(event:MouseEvent):void {
	TweenLite.to(crosshair_mc.bottomLeft_mc, .5, {y:-41.6, x:41, ease:Back.easeIn});
	TweenLite.to(crosshair_mc.bottomRight_mc, .5, {y:-41.6, x:-41.6, ease:Back.easeIn});
	TweenLite.to(crosshair_mc.topLeft_mc, .5, {y:41.6, x:41.6, ease:Back.easeIn});
	TweenLite.to(crosshair_mc.topRight_mc, .5, {y:41.6, x:-41.6, ease:Back.easeIn, onComplete:});
 
	var MyTimer = getTimer() + 3000 
	ants_mc.addEventListener(Event.ENTER_FRAME,WaitForExecute)
	
	function WaitForExecute(){
		if(MyTimer < getTimer()){
			ants_mc.removeEventListener(Event.ENTER_FRAME,WaitForExecute)
			TweenLite.to(ants_mc, .8, {alpha:1, delay:.5, ease:Strong.easeOut});
		}		
	}
}
Open in New Window Select All
Random Solutions  
 
programming4us programming4us