微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

停止影片剪辑

如何解决停止影片剪辑

| 我要停止播放电影,当它进入最后一帧时,我这样做如下:
package{
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.events.Event;

    public class MeiYi extends Sprite{
        private var mainMovie:MovieClip = new MeiYiMain();  //MeiYiMain is build in the library of flash cs4

        function MeiYi():void{
            //stop at last frame
            mainMovie.addEventListener(Event.ENTER_FRAME,stopMainMovie);
            //trace(mainMovie.totalFrames);
            //mainMovie.gotoAndStop(50);
        }

        private function stopMainMovie(evt:Event):void{
            //trace(mainMovie.currentFrame);
            if (mainMovie.currentFrame == mainMovie.totalFrames){
                mainMovie.stop();  //stop
            }
        }
    }
}
但这对我没有任何作用,没有错误或我想要的东西。 它出什么问题了? 谢谢。     

解决方法

        一个简单的解决方案是:
stop();
在MovieClip的最后一帧(MeiYiMain)中。您可以通过选择它并按F9调出ActionScript面板来执行此操作。 另请参见在线文档中MovieClip类的
totalframes
属性:   中的总帧数   MovieClip实例。      如果影片剪辑包含多个   框架,totalFrames属性   返回中的总帧数   影片剪辑中的所有场景。 以后可能也会影响到它。     ,        应该工作正常,这很奇怪。尝试为
MeiYiMain
创建一个类,并在其中添加监听器,而不是在
MeiYi
中添加监听器。
package
{
    import flash.display.MovieClip;
    import flash.events.Event;

    public class MeiYiMain extends MovieClip
    {
        /**
         * Constructor
         */
        public function MeiYiMain()
        {
            addEventListener(Event.ENTER_FRAME,_handle);
        }

        /**
         * Handle
         * @param e Event.ENTER_FRAME
         */
        private function _handle(e:Event):void
        {
            if(currentFrame == totalFrames)
            {
                removeEventListener(Event.ENTER_FRAME,_handle);

                trace(\'stopped\');
                stop();
            }
        }
    }
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。