Всем доброго времени суток. Я недавно приступил к изучению 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. Если кто может объяснить - буду премного благодарен. И если возможно, поделитесь примером кода кнопки.