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