| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > ActionScript 3 > заливка фона, анимация |
| Автор: Ramirez 18.5.2010, 20:22 |
| Доброго всем дня. есть задача: пункт меню, при наведении курсора плавно заливается цветом (сверху вниз, или слева направо это не принципиально), при отведении плавно возвращается к прозрачному фону. сделано: Есть класс унаследованный от спрайта. Представляет собой пункт меню. У него два потомка: объект Text с надписью и еще один спрайт, который должен быть фоном, который динамически меняется при наведении. Хочется чтобы фон менялся динамически: в исходном состоянии - его нет (прозрачный), при наведении - заливается неким цветом сверху вниз. при наведении курсора создается listener на событие onEnterFrame, который в спрайте фона рисует залитый прямоугольник (.graphics.drawRect) и с каждым проходом его ресайзит до нужного размера, по достижении нужной заливки listener удаляется. все работает, но вариант "рисования" заливки через .graphics.drawRect мне кажется неправильным. да и масштабирование не очень красиво выглядит. как это правильнее/лучше сделать. хочется чистым as3, без заранее заготовленных анимаций. заранее спасибо! |
| Автор: bars80080 19.5.2010, 00:33 |
| не знаю, меня что-то чистый as3 не прельщает. очень полезная возможность в нём совмещать некий вручную нарисованный объект с классом. прям так и названо: отделение функционала от отображения я бы сделал просто: нарисовал картинку с перетекающим градиентом сверху вниз из одного цвета в другой. причём даже не прозрачную. нижний цвет тот же самый, как у фона в спокойном состоянии. сверху этой картинки налепил маску, которая бы ограничивала под пункт меню и соответственно двигал бы картинку сверху вниз из-за края на место пункта. получился бы наливающийся фон в коде это сделать в принципе тоже можно. там есть какие-то методы по генерации маски и градиента. но я тут уже не подскажу |
| Автор: nilrem 19.5.2010, 03:16 |
| Ramirez, попробуйте вместо ресайза перезаливать прямоугольник градиентом с разными значениями alphas массива и изменять ratios |
| Автор: Ramirez 1.6.2010, 12:18 |
| за идеи спасибо! пока остановился на варианте, программного создания маски. |
| Автор: Ramirez 7.7.2010, 13:40 |
| вариант рисования "руками" привлекательнее, но что делать если какие-то параметры анимации зависят от внешних, динамических факторов? в данном примере текст пункта меню формируется динамически в процесе выполнения ролика. как подогнать всю анимацию под неизвестную ширину текста? писать код в кадрах? |