Actionscript 3 Actionscript 3.0 MovieClip帧更改侦听器

Actionscript 3 Actionscript 3.0 MovieClip帧更改侦听器,actionscript-3,listener,frame,movieclip,Actionscript 3,Listener,Frame,Movieclip,我和一个怪物有一场戏。怪物眨着眼睛。《眨眼》是一部独立的电影。 在某些情况下,怪物会张开嘴。张嘴也是一部独立的电影。此时此刻,我不得不把眼睛藏起来。怪物一闭上嘴,我就必须让眼睛再次闪烁 我的想法是让一些听众听张口电影。当张嘴的currentFrame从1更改为2时,我将隐藏眼睛。当它从2变为1时,我将显示它 所以,问题是:我如何倾听currentFrame的更改? Event.ENTER\u FRAME不合适:它会在每个渲染帧中调用,而不仅仅是在当前帧更改时调用。ActionScript中没有“

我和一个怪物有一场戏。怪物眨着眼睛。《眨眼》是一部独立的电影。 在某些情况下,怪物会张开嘴。张嘴也是一部独立的电影。此时此刻,我不得不把眼睛藏起来。怪物一闭上嘴,我就必须让眼睛再次闪烁

我的想法是让一些听众听张口电影。当张嘴的currentFrame从1更改为2时,我将隐藏眼睛。当它从2变为1时,我将显示它

所以,问题是:我如何倾听currentFrame的更改? Event.ENTER\u FRAME不合适:它会在每个渲染帧中调用,而不仅仅是在当前帧更改时调用。

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