【问题标题】:AS3 MovieClip not playing consistentlyAS3 MovieClip 无法持续​​播放
【发布时间】: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 吐出一些数据。

标签: actionscript-3 memory movieclip autorelease


【解决方案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 的下一帧?
猜你喜欢
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多