Показать сообщение отдельно
Старый 04.06.2014, 08:21
Лохматый вне форума Посмотреть профиль Отправить личное сообщение для Лохматый Найти все сообщения от Лохматый
  № 1  
Ответить с цитированием
Лохматый

Регистрация: May 2014
Сообщений: 2
По умолчанию Как проводить замену спрайтов?

Всем доброго времени суток. Я недавно приступил к изучению as3, начал с книги К.Мука. К своему сожалению обнаружил, что данная книга написана сложноватым для меня языком и часть материала я так и не понял. В итоге решил просто начать делать что-либо на as3, и сейчас столкнулся с проблемой которую не знаю как решить: как провести замену одного спрайта на другой?

На данный момент мне нужно создать объект, который будет выполнять функцию кнопки. У кнопки должно быть только 2 отображаемых состояния: вкл\выкл. Нажал на кнопку - отображается изображение, соответствующее "вкл", ещё раз на неё нажал - отображается изображение, соответствующее состоянию "выкл". Решил для этого дела создать собственный класс. Но не могу понять, как реализовать замену одного изображения на другое. Вот код, который есть на данный момент и который исправно работает:

Код AS3:
package
{
	import flash.display.Sprite;
	import flash.display.DisplayObject;
	import flash.events.MouseEvent;
 
	public class toggleButton extends Sprite
	{
 
		public function toggleButton(up,down) //  получаем из массива изображений спрайты
		{
 
			this.addChild(up);  // создаём спрайт, соответствующий положению кнопки "выкл"
 
			addEventListener(MouseEvent.CLICK, swap)  
		}
 
		private function swap(event:MouseEvent):void
		{
			trace("Клик");  // здесь должен быть код переключающий состояние кнопки
		}
 
	}
 
}
Как мне кажется, по этому принципу можно создать программную анимацию. Т.е. создать класс, в котором при выполнении условий события, будет запускаться цикл замены одного спрайта следующим с задержкой по времени, устанавливаемой таймером. Но как проводить эту замену - ума не приложу. И будут ли объекты, созданные на базе такого класса эффективны в плане ресурсоёмкости?

Очень бы хотелось понять, как реализуется спрайтовая программная анимация в as3. Если кто может объяснить - буду премного благодарен. И если возможно, поделитесь примером кода кнопки.