![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
|
Добрый день.
У меня возникла необходимость создать кнопку-мувиклип. Сама кнопка состоит из статичного фона и изображения, которое анимируется при наведении курсора мыши. Анимация не очень сложная - изображение покачивается и немного увеличивается, при отведении курсора от кнопки анимация проигрывается в обратном направлении. Кнопка имеет 2 состояния: активная и неактивная. Состояние меняется следующим образом: если кнопка активная при клике по ней она переходит в неактивное состояние, возвращение в активное состояние происходит по таймеру. Изображение фона общее для всех кнопок этого класса. Анимируемое изображение новое для каждого экземпляра класса. Собственно вопрос в следующем: как мне прописать в классе создание муви-клипа, состоящего из 2 слоев, на один слой поместить фон, на другой поместить изображение для анимации. И как потом описать анимацию изображения? Не смог найти нужной информации в help-e adobe... Поэтому и прошу совета у вас ![]() |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
> как мне прописать в классе создание муви-клипа, состоящего из 2 слоев
var layer1:Sprite = new Sprite(); var layer2:Sprite = new Sprite(); var mc:MovieClip = new MovieClip(); mc.addChild(layer1); mc.addChild(layer2); layer2 - это контейнер для изображения > на один слой поместить фон, на другой поместить изображение для анимации someFon - это ваш фон (DisplayObject) someImage - это ваше изображение (DisplayObject) > И как потом описать анимацию изображения? например, с помощью Tweener
__________________
low + |
|
|||||
|
Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
|
Спасибо! Теперь осталось разобраться с Tweener.
|
|
|||||
|
Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
|
Вот написал такой код, есть какие то замечания? Можно каким то другим образом загрузить изображение из кода класса?
package classe.btn.createBtn { import flash.display.MovieClip; import flash.text.TextField; import flash.display.Sprite; import flash.display.Loader; import flash.net.URLRequest; public class createBtn extends MovieClip { //Кнопка в ктивном состоянии public var Status:Boolean = true; //Путь к фону кнопки public var WayFon:String = "img/btn/fon/fon.png"; //Путь к анимируемому изображению кнопки public var WayAnimImg:String = "img/btn/animimg/bathroom/bathroom.png"; public function createBtn() { //Объявление слоев var layerFon: Sprite = new Sprite(); var layerImg: Sprite = new Sprite(); //Создание тела кнопки var mc_btn: MovieClip = new MovieClip(); //Переменные для загрузки изображений кнопки var loadFon: Loader = new Loader(); var loadImg: Loader = new Loader(); //Загрузка изображений loadFon.load(new URLRequest(WayFon)); loadImg.load(new URLRequest(WayAnimImg)); //Добавление на слои изображений layerFon.addChild(loadFon); layerImg.addChild(loadImg); //Изменение положения внутненнего изображения относительно фона loadImg.y = 25; loadImg.x = 25; //Добавление в мувиклип слоев mc_btn.addChild(layerFon); mc_btn.addChild(layerImg); //Добавление в список отображения кнопки-мувиклипа addChild(mc_btn); } } } Вообщем, обдумал я все плюсы и минусы создания кнопок с помощью классов и ручным способом... Создание кнопок с помощью класса удобно в случае создания большого количества однотипных кнопок. У меня же их будет всего 5. Так же анимация созданной кнопки упирается в необходимость использования внешних библиотек, в которых отсутствуют нестандартные варианты анимаций и поэтому придется утихомиривать фантазию и использовать то что есть, а разбираться в чужом коде чтобы переделать анимацию под себя или писать свой класс для анимации явно не вариант для меня сейчас. Но если создавать кнопки в ручную, то появляется большой простор для анимации, смогу реализовать все свои задумки. На это уйдет столько же времени, как и на создание и отладку класса для создания кнопок. Однако возникает сложность в правке созданных этим способом кнопок. Последний раз редактировалось CyberGenius; 14.09.2012 в 19:41. Причина: дублирование |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:16. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|