Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> заливка фона, анимация, как правильно? 
:(
    Опции темы
Ramirez
Дата 18.5.2010, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 18.1.2005
Где: Moscow, ExUSSR

Репутация: нет
Всего: 5



Доброго всем дня.

есть задача: пункт меню, при наведении курсора плавно заливается цветом (сверху вниз, или слева направо это не принципиально), при отведении плавно возвращается к прозрачному фону.

сделано:
Есть класс унаследованный от спрайта. Представляет собой пункт меню.
У него два потомка: объект Text  с надписью и еще один спрайт, который должен быть фоном, который динамически меняется при наведении.

Хочется чтобы фон менялся динамически: в исходном состоянии - его нет (прозрачный), при наведении - заливается неким цветом сверху вниз.

при наведении курсора создается listener на событие onEnterFrame, который в спрайте фона рисует залитый прямоугольник (.graphics.drawRect) и с каждым проходом его ресайзит до нужного размера, по достижении нужной заливки listener удаляется.

все работает, но вариант "рисования" заливки через .graphics.drawRect мне кажется неправильным. да и масштабирование не очень красиво выглядит.

как это правильнее/лучше сделать. хочется чистым as3, без заранее заготовленных анимаций.

заранее спасибо!
PM ICQ   Вверх
bars80080
Дата 19.5.2010, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



не знаю, меня что-то чистый as3 не прельщает. очень полезная возможность в нём совмещать некий вручную нарисованный объект с классом. прям так и названо: отделение функционала от отображения


я бы сделал просто: нарисовал картинку с перетекающим градиентом сверху вниз из одного цвета в другой. причём даже не прозрачную. нижний цвет тот же самый, как у фона в спокойном состоянии. сверху этой картинки налепил маску, которая бы ограничивала под пункт меню и соответственно двигал бы картинку сверху вниз из-за края на место пункта. получился бы наливающийся фон


в коде это сделать в принципе тоже можно. там есть какие-то методы по генерации маски и градиента. но я тут уже не подскажу
PM MAIL WWW   Вверх
nilrem
Дата 19.5.2010, 03:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 15.2.2006
Где: Киев

Репутация: нет
Всего: нет



Ramirez, попробуйте вместо ресайза перезаливать прямоугольник градиентом с разными значениями alphas массива и изменять ratios
PM MAIL WWW ICQ Skype   Вверх
Ramirez
Дата 1.6.2010, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 18.1.2005
Где: Moscow, ExUSSR

Репутация: нет
Всего: 5



за идеи спасибо! 
пока остановился на варианте, программного создания маски.
PM ICQ   Вверх
Ramirez
Дата 7.7.2010, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 18.1.2005
Где: Moscow, ExUSSR

Репутация: нет
Всего: 5



вариант рисования "руками" привлекательнее, но что делать если какие-то параметры анимации зависят от внешних, динамических факторов?
в данном примере текст пункта меню формируется динамически в процесе выполнения ролика. как подогнать всю анимацию под неизвестную ширину текста?

писать код в кадрах?

Это сообщение отредактировал(а) Ramirez - 7.7.2010, 13:42
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.