Не хватает ума понять, где ошибка.
Общая суть: Есть анимация из сорока кадров. При нажатии на кнопку, анимация включается с текущего момента и идет до момента назначенного на эту кнопку. Если анимация дошла до конца (40 кадр), а нужный момент еще не достигнут (например: из 30 кадра надо перейти в 5ый), тоанимация проигрывается с 1го кадра.
Идея реализации: цикл в каждом кадре проверяет свою позицию. если позиция на последнем кадре, то происходит переход на 1ый кадр + прибавляется еще 1; если анимация достигла нужного места, то она останавливается. А уж для того, чтобы это была анимация, а не мгновенный переход, есть таймеры, которые переводит анимацию на 1 кадр вперед только через 1/30 секунды.
Только вот все это не работает и не могу понять почему!)Может есть простые пути, а я загнался?

Код AS3:
function onClick(e:MouseEvent):void
{
for (var i:int = 0;i<41;i++){
var curframe:int;
curframe = MovieClip(root).currentFrame;
if (curframe == 40){
MovieClip(root).gotoAndStop(1);
var myTimer1:Timer = new Timer(33,1);
myTimer1.start();
myTimer1.addEventListener(TimerEvent.TIMER, nextframe);
function nextframe(e:TimerEvent):void {
MovieClip(root).nextFrame();
}
}
if (curframe == 20){
stop();
break;
}
else{
var myTimer2:Timer = new Timer(2000,1);
myTimer2.addEventListener(TimerEvent.TIMER, nextframe2);
myTimer2.start();
function nextframe2(e:TimerEvent):void {
MovieClip(root).nextFrame();
}
}