AS3 MovieClip 无法持续​​播放

Posted

技术标签:

【中文标题】AS3 MovieClip 无法持续​​播放【英文标题】:AS3 MovieClip not playing consistently 【发布时间】:2011-02-03 18:17:30 【问题描述】:

所以在我的 SWF 加载开始时,它还会加载一系列动画剪辑,如下所示:

var loader:Loader = new Loader();
loader.load(new URLRequest("clips/clip4.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, clip4Loaded);

而我的clipLoaded 函数是:

private function clip4Loaded(e:Event):void 
    clip4 = e.target.content as MovieClip;

正在加载的 clip4 文件在第一帧有一个stop()。在游戏后期(clip4 是“outro”)我使用:

clip4.gotoAndPlay(0);
clip4.addFrameScript(clip4.totalFrames - 1, clip4End);

但是,该剪辑似乎只播放了大约 25% 的时间,而我以完全相同的方式加载的所有其他剪辑都可以正常播放。唯一的区别是这些剪辑在加载后很快就会播放,这让我相信clip4 会在某个时候自动发布,但我真的不知道。

【问题讨论】:

所以你需要加载一个剪辑,停止它然后播放一次? clip4End 是什么?可以上传到任何地方吗? clip4End 只是电影到达最后一帧时调用的函数。现在它所做的只是通过 trace 吐出一些数据。 【参考方案1】:

奇怪 - 我有一个时间线动画 swf,第一帧中有 stop(); 和以下代码:

package 
    import flash.display.Loader;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.URLRequest;

    /**
     *
     * @author www0z0k
     */
    [SWF(width='400', height='300', frameRate='30')]
    public class NewClass extends Sprite 
        private const URL:String = 'res/1.swf';
        private var spr:MovieClip;
        public function NewClass():void 
            var ldr:Loader = new Loader();
            ldr.contentLoaderInfo.addEventListener(Event.INIT, onloaded);
            ldr.load(new URLRequest(URL));
        

        private function onloaded(e:Event):void 
            spr = e.target.content as MovieClip;
            addChild(spr);
            spr.addFrameScript(spr.totalFrames - 1, function():void  x = x == 0 ? 100 : 0;  );
            spr.addEventListener(MouseEvent.CLICK, onclick);
        

        private function onclick(e:MouseEvent):void 
            spr.gotoAndPlay(0);
        
        
  

它的工作原理与它所写的完全一样。 您能否将您的clip4.swf 上传到任何地方(或自己测试此代码)?

【讨论】:

我的代码基本上就是这样运行的。此外,swf 本身并不重要。我已经用 24 个不同的 swf 电影文件进行了尝试,它们都产生了相同的行为。有时它会播放,大多数时候它不会播放。经过进一步的测试,我很确定这与 gotoAndPlay 只是...无法播放有关。 @ingot86 - 你确定每次都调用包含gotoAndPlay 的函数吗?您是否尝试在必须播放动画时手动切换到 ENTER_FRAME 的下一帧?

以上是关于AS3 MovieClip 无法持续​​播放的主要内容,如果未能解决你的问题,请参考以下文章

在 DisplayObjectContainer 中识别 AS3 中的 MovieClip

当添加到另一个 AS 类文件的舞台时,AS3 访问 MovieClip

完成播放后停止影片剪辑的 AS3 按钮

如何在 AS3 中让 MovieClip 自行移除?

AS3 将图像添加到扩展 MovieClip 的类

Flash 横幅中的 AS3 视差效果阻止 Movieclip 按钮运行