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

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

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

Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
По умолчанию Как создать класс, создающий кнопки - мувиклипы?

Добрый день.
У меня возникла необходимость создать кнопку-мувиклип.
Сама кнопка состоит из статичного фона и изображения, которое анимируется при наведении курсора мыши.
Анимация не очень сложная - изображение покачивается и немного увеличивается, при отведении курсора от кнопки анимация проигрывается в обратном направлении.
Кнопка имеет 2 состояния: активная и неактивная. Состояние меняется следующим образом: если кнопка активная при клике по ней она переходит в неактивное состояние, возвращение в активное состояние происходит по таймеру.
Изображение фона общее для всех кнопок этого класса. Анимируемое изображение новое для каждого экземпляра класса.

Собственно вопрос в следующем: как мне прописать в классе создание муви-клипа, состоящего из 2 слоев, на один слой поместить фон, на другой поместить изображение для анимации. И как потом описать анимацию изображения?

Не смог найти нужной информации в help-e adobe... Поэтому и прошу совета у вас

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
> как мне прописать в классе создание муви-клипа, состоящего из 2 слоев

Код AS3:
var layer1:Sprite = new Sprite();
var layer2:Sprite = new Sprite();
 
var mc:MovieClip = new MovieClip();
mc.addChild(layer1);
mc.addChild(layer2);
layer1 - это контейнер для вашего фона
layer2 - это контейнер для изображения

> на один слой поместить фон, на другой поместить изображение для анимации

Код AS3:
layer1.addChild(someFon);
layer2.addChild(someImage);
someFon - это ваш фон (DisplayObject)
someImage - это ваше изображение (DisplayObject)

> И как потом описать анимацию изображения?

например, с помощью Tweener
__________________
low +

Старый 13.09.2012, 18:37
CyberGenius вне форума Посмотреть профиль Отправить личное сообщение для CyberGenius Найти все сообщения от CyberGenius
  № 3  
Ответить с цитированием
CyberGenius
 
Аватар для CyberGenius

Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
Спасибо! Теперь осталось разобраться с Tweener.

Старый 13.09.2012, 18:42
CyberGenius вне форума Посмотреть профиль Отправить личное сообщение для CyberGenius Найти все сообщения от CyberGenius
  № 4  
Ответить с цитированием
CyberGenius
 
Аватар для CyberGenius

Регистрация: Sep 2012
Адрес: Россия
Сообщений: 30
Вот написал такой код, есть какие то замечания? Можно каким то другим образом загрузить изображение из кода класса?
Код AS1/AS2:
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);
		}
 
	}
 
}
Добавлено через 24 часа 42 минуты
Вообщем, обдумал я все плюсы и минусы создания кнопок с помощью классов и ручным способом...

Создание кнопок с помощью класса удобно в случае создания большого количества однотипных кнопок. У меня же их будет всего 5. Так же анимация созданной кнопки упирается в необходимость использования внешних библиотек, в которых отсутствуют нестандартные варианты анимаций и поэтому придется утихомиривать фантазию и использовать то что есть, а разбираться в чужом коде чтобы переделать анимацию под себя или писать свой класс для анимации явно не вариант для меня сейчас.

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


Последний раз редактировалось CyberGenius; 14.09.2012 в 19:41. Причина: дублирование
Создать новую тему Ответ Часовой пояс GMT +4, время: 11:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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