Для плавности мы используем готовые движки типа
http://www.greensock.com/tweenlite/
А так можешь и сам

Код AS3:
var rejim:int=1;
Knopka.addEventListener(MouseEvant.MOUSE_OVER, Over)
Knopka.addEventListener(MouseEvant.MOUSE_OUT, Out)
function Over(e:MouseEvant){
rejim=1;
e.currentTarget.addEventListener(Event.ENTER_FRAME, Animation)
}
function Out(e:MouseEvant){
rejim=-1;
e.currentTarget.addEventListener(Event.ENTER_FRAME, Animation)
}
function Animation(e:Event){
if (e.currentTarget.scaleX>=.5 && e.currentTarget.scaleX<=1) e.currentTarget.scaleX+=.01*rejim;
else e.currentTarget.removeEventListener(Event.ENTER_FRAME,Animation);
}