加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash事件侦听器为movieclip结束?

发布时间:2020-12-15 07:30:46 所属栏目:百科 来源:网络整理
导读:有人建议在动画片段动画完成时触发功能的最佳方法? 我想一个eventlistener可以处理这个,但不知道最好的方法去做. 谢谢 保罗 解决方法 有几种方法可以解决这个问题: 只需从动画的最后一帧调用该函数即可. 在函数的最后一帧调度一个事件,并在其他地方听. 长
有人建议在动画片段动画完成时触发功能的最佳方法?
我想一个eventlistener可以处理这个,但不知道最好的方法去做.
谢谢
保罗

解决方法

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

>只需从动画的最后一帧调用该函数即可.
>在函数的最后一帧调度一个事件,并在其他地方听.
>长而有效/整齐/推荐的方式.

参考第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");
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读