Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.02.2013, 09:49
RigidFlasher вне форума Посмотреть профиль Отправить личное сообщение для RigidFlasher Найти все сообщения от RigidFlasher
  № 1  
Ответить с цитированием
RigidFlasher

Регистрация: Dec 2011
Сообщений: 70
По умолчанию Увеличение размера клипа при наведении курсора

Здравствуйте!
Хочу сделать кнопку, которая при наведении на нее указателя мыши плавно увеличивает размер. Когда указатель мыши уходит, кнопка так же плавно уменьшается до исходного размера. Для этого воспользовался библиотекой 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 } );
}
Существует ли более грамотное решение?

Старый 25.02.2013, 10:29
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Существует ли более грамотное решение?
Существует. Использовать ROLL_OVER и ROLL_OUT вместо MOUSE_OVER, MOUSE_OUT

Старый 25.02.2013, 14:26
RigidFlasher вне форума Посмотреть профиль Отправить личное сообщение для RigidFlasher Найти все сообщения от RigidFlasher
  № 3  
Ответить с цитированием
RigidFlasher

Регистрация: Dec 2011
Сообщений: 70
caseyryan, спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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