Вариант не в стиле AS3 конечно, просто раз уж проект AS2, то думаю подойдет в самый раз.

Код AS3:
var __root:Object = this["root"];
var isMouseOver__menu1:Boolean = false;
__root.menu1.icon1.addEventListener( Event.ENTER_FRAME, onEnterFrame__menu1_icon1 );
__root.menu1.addEventListener( MouseEvent.MOUSE_OVER, onMouseOver__menu1 );
__root.menu1.addEventListener( MouseEvent.MOUSE_OUT, onMouseOut__menu1 );
//Вот действия выполняемые при наводе курсора на кнопку меню menu1
function onMouseOver__menu1( e:MouseEvent ):void
{
//переходим на кадр, где кнопочка подсвечивается
__root.menu1.gotoAndPlay(2);
//а вот колебание кнопки
isMouseOver__menu1 = true;
//тут выезжает красивая фигня-подсказка к кнопке menu1
__root.submenu1.gotoAndPlay(2);
//а тут закрываются предыдущие открытые до этого подсказки к другим кнопкам
__root.submenu2.gotoAndStop(1);
__root.submenu3.gotoAndStop(1);
__root.submenu4.gotoAndStop(1);
__root.submenu5.gotoAndStop(1);
}
//Убираем курсор с кнопки
function onMouseOut__menu1( e:MouseEvent ):void
{
//возвращаемся в первый кадр подсветки кнопки
__root.menu1.gotoAndPlay(1);
//возвращаем масштаб кнопки в исходное положение
isMouseOver__menu1 = false;
}
function onEnterFrame__menu1_icon1( e:Event ):void
{
if( isMouseOver__menu1 )
elasticScale( __root.menu1.icon1, 1.5, -0.7, 110, 110 );
else
elasticScale( __root.menu1.icon1, 1.5, -0.7, 100, 100 );
}
function elasticScale( in_mc:Object, a:Number, b:Number, tScaleX:Number, tScaleY:Number ):void
{
tScaleX *= 0.01;
tScaleY *= 0.01;
in_mc.tempScaleX = in_mc.scaleX;
in_mc.tempScaleY = in_mc.scaleY;
if( in_mc.prevScaleX && in_mc.prevScaleY )
{
in_mc.scaleX = a*(in_mc.scaleX-tScaleX)+b*(in_mc.prevScaleX-tScaleX)+tScaleX;
in_mc.scaleY = a*(in_mc.scaleY-tScaleY)+b*(in_mc.prevScaleY-tScaleY)+tScaleY;
}
in_mc.prevScaleX = in_mc.tempScaleX;
in_mc.prevScaleY = in_mc.tempScaleY;
}