actionscript-3 - Actionscript 3.0 MovieClip 帧更改监听器

标签 actionscript-3 listener frame movieclip

我有一个怪物的场景。怪物眨了眨眼睛。眨眼是一个单独的影片剪辑。
在某些情况下,怪物会张开嘴。嘴巴张开也是一个单独的 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);
}

关于actionscript-3 - Actionscript 3.0 MovieClip 帧更改监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768931/

相关文章:

actionscript-3 - 相当于 actionscript3 的 describeType 的 Typescript

actionscript-3 - As3 - 如何使用代码检查 SWF 从哪个 IDE 运行?

actionscript-3 - AS3内存泄漏

java - 使用 Spring cloud SqsListener 尝试读取消息失败的阈值

ios - 如何在运行时设置 UIView 的边框颜色

ios - 一劳永逸地解决 initWithFrame :self. view.frame 20 像素(状态栏)问题

apache-flex - 使用 ActionScript 中的唯一数据填充数据网格内的组合框(flex)

jsf - JSF 中有类似 ServletContextListener 的东西吗?

Java - ActionListeners、KeyListeners 等是否应该始终在内部类中声明?

html - 如何更改单个元素的溢出,同时隐藏正文的溢出?