AS3 MovieClip не играет последовательно - PullRequest
0 голосов
/ 03 февраля 2011

Итак, в начале, когда мой 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 голосов
/ 04 февраля 2011

странно - у меня есть анимированный на временной шкале 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 куда-либо (или проверить этот код самостоятельно)?

...