AS3 MovieClip不能持续播放

时间:2011-02-03 18:17:31

标签: actionscript-3 memory movieclip autorelease

所以在开始我的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在某些时候被自动释放但我真的不知道。

1 个答案:

答案 0 :(得分:0)

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

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上传到任何地方(或者自己用它来测试这段代码)吗?