Flash 8 Pro AS Tweening problem

Hi there.

I am creating a banner and am fairly new to ActionScript. I want the user to the banner to scroll over a ball, ActionScript to tween it to center stage and then when the user scrolls away from the ball, it then moves back to it’s original position.

At the moment, I experimented with a Boolean to stop the tween being actioned twice while it is in motion, but i can’t quite get it straight.

Do i need to use a listener to change a boolean when it is in motion? I’m just so stuck.

Can anyone help me with this?

.fla is attached and the graphics have been taken out to reduce the upload file size. All the fundementals are there though, oh and here’s the script.

import mx.transitions.Tween;
import mx.transitions.easing.*;
function scales(redBall, xScaleStart, yScaleStart, xScaleEnd, yScaleEnd, timer) {
 var redBall:MovieClip = redBall;
 var timer:Number = timer;
 var xScaleEnd:Number = xScaleEnd;
 var yScaleEnd:Number = yScaleEnd;
 var xScaleStart:Number = xScaleStart;
 var yScaleStart:Number = yScaleStart;
 var xScaleTween:Tween = new Tween(redBall, "_xscale", Strong.easeIn, xScaleStart, xScaleEnd, timer, true);
 var yScaleTween:Tween = new Tween(redBall, "_yscale", Strong.easeIn, yScaleStart, yScaleEnd, timer, true);
 xScaleTween.onMotionFinished = function() {
  xScaleTween.continueTo(xScaleStart, 3);
 };
 yScaleTween.onMotionFinished = function() {
  yScaleTween.continueTo(yScaleStart, 3);
 };
}
function midTween(ball_mc, xStartPos, yStartPos, xPosEnd, yPosEnd, timer) {
 var ball_mc:MovieClip = ball_mc;
 var timer:Number = timer;
 var xPosEnd:Number = xPosEnd;
 var yPosEnd:Number = yPosEnd;
 var xStartPos:Number = xStartPos;
 var yStartPos:Number = yStartPos;
 var xMidTween:Tween = new Tween(ball_mc, "_x", Strong.easeOut, xStartPos, xPosEnd, timer, true);
 var yMidTween:Tween = new Tween(ball_mc, "_y", Strong.easeOut, yStartPos, yPosEnd, timer, true);
 xMidTween.onMotionFinished = function() {
  xMidTween.continueTo(xStartPos, 3);
 };
 yMidTween.onMotionFinished = function() {
  yMidTween.continueTo(yStartPos, 3);
 };
}
function entryTween(ball_mc, xStartPos, yStartPos, xPosEnd, yPosEnd, timer) {
 var ball_mc:MovieClip = ball_mc;
 var timer:Number = timer;
 var xPosEnd:Number = xPosEnd;
 var yPosEnd:Number = yPosEnd;
 var xStartPos:Number = xStartPos;
 var yStartPos:Number = yStartPos;
 var enterTween:Tween = new Tween(ball_mc, "_y", Bounce.easeOut, yStartPos, yPosEnd, timer, true);
}
function begin() {
 entryTween(cruiseBtn_mc, 6.0, -30, 6.0, 422.3, 3);
 entryTween(singleTripBtn_mc, 41.6, -10, 41.6, 409.4, 2);
 entryTween(annualBtn_mc, 67.2, -20, 67.2, 404.9, 3);
 entryTween(skiBtn_mc, 81.0, -50, 81.0, 405.0, 4);
 entryTween(backPackBtn_mc, 97.4, -60, 97.4, 409.4, 5);
 entryTween(golfBtn_mc, 119.3, -80, 119.3, 422.3, 4);
}
var myBalls:Array = new Array(cruiseBtn_mc, singleTripBtn_mc, annualBtn_mc, skiBtn_mc, backPackBtn_mc, golfBtn_mc);
function ballMover() {
 var max:Number = myBalls.length;
 for (var i:Number = 0; i<max; i++) {
  myBalls*.onRollOver = function() {
   if (this.fell != true) {
    midTween(this, this._x, this._y, 49, 269, 2);
    scales(this, this._xscale, this._yscale, 300, 300, 1);
   }
  };
 }
}
begin();
ballMover();

Thanks lots