Ваше, конечно, дело, но потестируйте то, что у вас есть сейчас, имея ввиду эффекты разные, которые могут быть при произвольном уведении-наведении мыши уже
в процессе анимации.
Возможно не все так просто, движения могут наслаиваться и нужно еще несколько дополнительных телодвижений:

Код AS1/AS2:
import mx.transitions.Tween;
var tweenHolder:Object = new Object();
image_mc.onRollOut = imgOut;
image_mc.onRollOver = imgOver;
function imgOver () {
image_mc.enabled = false ;
tweenHolder['off'].stop();
tweenHolder['on'] = new Tween(image2_mc, "_y", mx.transitions.Elastic.easeOut, image2_mc._y, 60, 1.7, true);
tweenHolder['on'].onMotionFinished = imgEnable;
}
function delayedTween () {
image_mc.enabled = false ;
tweenHolder['on'].stop();
tweenHolder['off'] = new Tween(image2_mc, "_y", mx.transitions.Elastic.easeOut, image2_mc._y, -60, 1.7, true);
tweenHolder['off'].onMotionFinished = imgEnable;
}
function imgOut () {
to = setTimeout(delayedTween, 3000);
}
function imgEnable () {
image_mc.enabled = true ;
}
Тут учитывается, если что, остановка предыдущего движения и деактивация кнопки до выполнения предыдущего задания.
PS. А вообще-то setTimeout очень даже
"как" - ведь он проще, чем setInterval, так как не нужно стирать интервал, после первого выполнения он очистится автоматически. То есть на одну строку кода меньше.
Хелп юзайте!
