Actionscript 3.0 MovieClip框架更改侦听器

时间:2011-10-14 14:14:07

标签: actionscript-3 listener frame movieclip

我有一个怪物的场景。怪物眨了眨眼睛。眨眼是一个单独的MovieClip。 在某些情况下,怪物张开嘴。嘴巴开放也是一个单独的MovieClip。此刻我不得不隐藏EyeClip的眼睛。一旦怪物闭上嘴,我必须让眼睛再次闪烁。

我的想法是让一些听众听Mouth_opening MovieClip。当嘴开口的当前帧从1变为2时,我会隐藏眼睛。当它从2变为1时,我会将它显示回来。

所以,问题是:我如何收听currentFrame的变化? Event.ENTER_FRAME不合适:它被调用每个渲染帧,而不仅仅是当currentFrame更改时。

1 个答案:

答案 0 :(得分:5)

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);
}