Доброго времени суток уважаемые формучане. Хочу спросить у гуру - как вы управляете анимацией спрайтов в разных случаях в работе приложения? Например у меня есть мувик человечка с 8 кадрами передвижения. Я загоняю в массив

Код AS3:
hero.move = new Array(1,2,3,4,5,6,7,8)
затем я создаю переменнюю для начала отсчёта

Код AS3:
hero.animstep = -1;
Затем по логике игры,когда нам нужна анимировать героя(например при нажатии клавиши) ,у нас в ENTERFRAME
происходит примерно так

Код AS3:
hero.animstep += 1;
if (hero.animstep > hero.move.length) {
hero.animstep = -1;
}
hero.gotoAndStop(hero.move[Math.floor(hero.animstep)]);
И так каждый в каждый такт происходит смена кадра при каком нибудь условии(например при Leftkey - true)
Всё работает,но у меня есть подозрения,что это как то всё не правильно,сильно грамозко. Плюсы,что для каждого действия объекта(спит,ест,бежит и т.д) мы создаём отдельный массив кадров и отдельно проигрываем его,а вот минус,я не могу его (этот метод) усовершенствовать,мне всё время для каждого спрайта писать один и тот же код.Может я пытаюсь сделать велосипед, и есть просто один метод ,который вы давно уже используете, в который можно было передать объект(герой или враги и т.д),его действие(массив с определенным навыком,нужный на этот момент) и может еще параметры .Чтоб он был просто отдельным классом.Извините,если это глупый вопрос.И всем спасибо