Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Увеличение размера клипа при наведении курсора (http://www.flasher.ru/forum/showthread.php?t=194931)

RigidFlasher 25.02.2013 09:49

Увеличение размера клипа при наведении курсора
 
Здравствуйте!
Хочу сделать кнопку, которая при наведении на нее указателя мыши плавно увеличивает размер. Когда указатель мыши уходит, кнопка так же плавно уменьшается до исходного размера. Для этого воспользовался библиотекой TweenLite.

Код AS3:

this.button.addEventListener(MouseEvent.MOUSE_OVER, _onMouseOver);
this.button.addEventListener(MouseEvent.MOUSE_OUT, _onMouseOut);
 
private function _onMouseOut(e:MouseEvent):void
{
    TweenLite.to(this, 0.5, { scaleX:1, scaleY:1, ease:Strong.easeInOut } );
}
 
private function _onMouseOver(e:MouseEvent):void
{
    TweenLite.to(this, 0.5, { scaleX:1.2, scaleY:1.2, ease:Strong.easeInOut } );
}

Проблема в том, что когда я навожу мышь на кнопку и она начинает масштабироватся, событие MOUSE_OVER и MOUSE_OUT срабатывает несколько раз, из-за этого кнопка увеличивается рывками. Пока что не придумал ничего умнее, чем сделать флаг (например, _scaleFlag), который будет равен true, если кнопка увеличивается в данный момент, а потом написать вот так:

Код AS3:

private function _onMouseOut(e:MouseEvent):void 
{
    if (!_scaleFlag)
        TweenLite.to(this, 0.5, { scaleX:1.2, scaleY:1.2, ease:Strong.easeInOut } );
}

Существует ли более грамотное решение?

caseyryan 25.02.2013 10:29

Цитата:

Существует ли более грамотное решение?
Существует. Использовать ROLL_OVER и ROLL_OUT вместо MOUSE_OVER, MOUSE_OUT

RigidFlasher 25.02.2013 14:26

caseyryan, спасибо!


Часовой пояс GMT +4, время: 02:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.