![]() |
|
Модераторы: SoWa |
![]()
|
|
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: нет Всего: 5 |
Доброго всем дня.
есть задача: пункт меню, при наведении курсора плавно заливается цветом (сверху вниз, или слева направо это не принципиально), при отведении плавно возвращается к прозрачному фону. сделано: Есть класс унаследованный от спрайта. Представляет собой пункт меню. У него два потомка: объект Text с надписью и еще один спрайт, который должен быть фоном, который динамически меняется при наведении. Хочется чтобы фон менялся динамически: в исходном состоянии - его нет (прозрачный), при наведении - заливается неким цветом сверху вниз. при наведении курсора создается listener на событие onEnterFrame, который в спрайте фона рисует залитый прямоугольник (.graphics.drawRect) и с каждым проходом его ресайзит до нужного размера, по достижении нужной заливки listener удаляется. все работает, но вариант "рисования" заливки через .graphics.drawRect мне кажется неправильным. да и масштабирование не очень красиво выглядит. как это правильнее/лучше сделать. хочется чистым as3, без заранее заготовленных анимаций. заранее спасибо! |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: нет Всего: 315 |
не знаю, меня что-то чистый as3 не прельщает. очень полезная возможность в нём совмещать некий вручную нарисованный объект с классом. прям так и названо: отделение функционала от отображения
я бы сделал просто: нарисовал картинку с перетекающим градиентом сверху вниз из одного цвета в другой. причём даже не прозрачную. нижний цвет тот же самый, как у фона в спокойном состоянии. сверху этой картинки налепил маску, которая бы ограничивала под пункт меню и соответственно двигал бы картинку сверху вниз из-за края на место пункта. получился бы наливающийся фон в коде это сделать в принципе тоже можно. там есть какие-то методы по генерации маски и градиента. но я тут уже не подскажу |
|||
|
||||
| nilrem |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 15.2.2006 Где: Киев Репутация: нет Всего: нет |
Ramirez, попробуйте вместо ресайза перезаливать прямоугольник градиентом с разными значениями alphas массива и изменять ratios
|
|||
|
||||
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: нет Всего: 5 |
за идеи спасибо!
пока остановился на варианте, программного создания маски. |
|||
|
||||
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: нет Всего: 5 |
вариант рисования "руками" привлекательнее, но что делать если какие-то параметры анимации зависят от внешних, динамических факторов?
в данном примере текст пункта меню формируется динамически в процесе выполнения ролика. как подогнать всю анимацию под неизвестную ширину текста? писать код в кадрах? Это сообщение отредактировал(а) Ramirez - 7.7.2010, 13:42 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | ActionScript 3 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |