|
|
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
|
|
|
|
|