影片剪辑结束的Flash事件监听器?

标签 flash actionscript-3 flash-cs5

影片剪辑动画结束时,谁能建议最好的方法来触发功能?
我认为事件监听器可以处理此问题,但不确定执行此操作的最佳方法。
谢谢
保罗

最佳答案

有几种方法可以解决此问题:

  • 只需从动画的最后一帧调用该函数。
  • 在函数的最后一帧发送事件,然后在其他地方监听。
  • 长而有效/整洁/推荐的方式。

  • 关于第3点,我将为您的对象创建一个基类。这样,您可以将相同的逻辑应用于多个动画元素。

    像这样的东西:
    package
    {
        import flash.display.MovieClip;
        import flash.events.Event;
    
        public class AnimatingObject extends MovieClip
        {
            // constants
            public const ANIMATION_COMPLETE:String = "animation_complete";
    
            /**
             * Constructor
             */
            public function AnimatingObject()
            {
                addEventListener(Event.ENTER_FRAME, _handle);
            }
    
            /**
             * Called on dispatch of Event.ENTER_FRAME
             */
            private function _handle(e:Event):void
            {
                if(currentFrame == totalFrames)
                {
                    var evt:Event = new Event(ANIMATION_COMPLETE);
                    dispatchEvent(evt);
                }
            }
        }
    }
    

    现在我们可以听“animation_complete” 并做相应的事情。
    package
    {
        import flash.events.Event;
    
        public class MyAnimatingObject extends AnimatingObject
        {
            /**
             * Constructor
             */
            public function MyAnimatingObject()
            {
                addEventListener(ANIMATION_COMPLETE, _lastFrame);
            }
    
            /**
             * Called on dispatch of AnimatingObject.ANIMATION_COMPLETE
             */
            private function _lastFrame(e:Event):void
            {
                trace("i'm done");
            }
        }
    }
    

    关于影片剪辑结束的Flash事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981069/

    相关文章:

    actionscript-3 - 如何在 Flash 应用程序中创建退出按钮

    actionscript-3 - 如何以编程方式访问显示对象的所有子对象?

    apache-flex - 在 Sprite 中获取应用于 Flash Sprite 的滤镜范围

    actionscript-3 - Actionscript 内存管理?

    javascript - 在 flex 中禁用脚本最大执行时间?

    actionscript-3 - Flex 4 <s:Scroller>重新计算范围?

    actionscript-3 - AS3中的声音延迟

    java - Android 闪光灯小部件代码崩溃

    flash - 如何消除闪光灯组件的蓝色焦点矩形?

    javascript - 从闪存调用 javascript?