Показать сообщение отдельно
Старый 09.11.2009, 20:15
GentleFLASH вне форума Посмотреть профиль Отправить личное сообщение для GentleFLASH Найти все сообщения от GentleFLASH
  № 3  
Ответить с цитированием
GentleFLASH

Регистрация: Apr 2009
Сообщений: 117
Вариант не в стиле 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;
}


Последний раз редактировалось GentleFLASH; 09.11.2009 в 23:17.