Слушатель смены кадров Actionscript 3.0 MovieClip

У меня есть сцена с монстром. Монстр моргает глазами. Мигание глаз — это отдельный мувиклип. При некоторых условиях монстр открывает пасть. Открывание рта также является отдельным мувиклипом. В этот момент я должен скрыть глаза MovieClip. Как только монстр закроет пасть, я должен снова сделать видимым моргание глаз.

Моя идея состоит в том, чтобы иметь слушателя, который слушает Mouth_opening MovieClip. Когда текущий кадр открывания рта изменится с 1 на 2, я скрою глаза. Когда он изменится с 2 на 1, я покажу его обратно.

Итак, вопрос: как мне прослушать изменения currentFrame? Event.ENTER_FRAME не подходит: он вызывается каждый кадр рендеринга, а не только при изменении currentFrame.


person Nick    schedule 14.10.2011    source источник


Ответы (1)


В ActionScript нет события «frameChange», поэтому вам нужно придумать свою собственную систему. Например, вы можете заставить его работать, слушая enterFrame, а затем отслеживать текущий кадр — когда он изменяется, вызывайте свою функцию. Что-то вроде этого должно работать:

private var lastFrame:int = -1;

// Then add this in your constructor:
addEventListener("enterFrame", onEnterFrame);

private function onEnterFrame(event:*):void {
    if (lastFrame != currentFrame) {
        onFrameChanged();
        lastFrame = currentFrame;
    }
}


private function onFrameChanged():void {
    trace("The frame has changed to " + currentFrame);
}
person laurent    schedule 14.10.2011