Доброго времени суток. Никак не могу понять один свой косяк.
Есть две функции. Одна из них регистрирует событие Event.ENTER_FRAME в мувклипе clip:

Код AS3:
public function eatingAnimation( ):void {
clip.addEventListener(Event.ENTER_FRAME, animation);
}
Другая проигрывает анимацию до конца кадров мувклипа, после чего выполняет какие-то действия и удаляет регистрацию:

Код AS3:
public function animation(e:Event):void {
clip.gotoAndPlay("animation");
if (clip.currentFrame == clip.totalFrames) {
trace("ВСЕ КАДРЫ ПРОИГРАНЫ");
// КАКИЕ-ТО ДЕЙСТВИЯ
mMouth.removeEventListener(Event.ENTER_FRAME, mouthAnimEating); // удалить регистрацию приёмника
}
}
А проблема в том, что после регистрации события, timeline переходит на следующий кадр после "animation" и останавливается. При этом, если я использую:

Код AS3:
clip.play( );
вместо:

Код AS3:
clip.gotoAndPlay("animation");
анимация проигрывается но, естественно, с самого начала мувклипа. Именно при переходе по кадрам начиная от метки "animation" воспроизведение останавливается, также и при:

Код AS3:
clip.gotoAndPlay(номер_кадра);