我有一个怪物的场景。怪物眨了眨眼睛。眨眼是一个单独的影片剪辑。
在某些情况下,怪物会张开嘴。嘴巴张开也是一个单独的 MovieClip。此刻我不得不隐藏眼睛MovieClip。怪物一闭上嘴,我就必须让眨眼的眼睛再次可见。
我的想法是让一些听众听 Mouth_opening MovieClip。当 Mouth opening 的 currentFrame 从 1 变为 2 时,我会隐藏眼睛。当它从 2 变为 1 时,我会显示回来。
所以,问题是:我如何监听 currentFrame 的变化?
Event.ENTER_FRAME 不合适:每个渲染帧都会调用它,而不仅仅是在 currentFrame 更改时。
最佳答案
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);
}