Search code examples
actionscript-3flashloadermovieclip

as3 play movieclip once


I would be very thankful if you help me with this problem. I´m trying to play in my application for ipad one MovieClip once. i tried to do stopping in this way, but the movie dont stop

var loader:Loader = new Loader();
var swfFile:URLRequest= new URLRequest("/test.swf");
loader.load(swfFile);

movieClip = new MovieClip();
movieClip.addChild(loader);
movieClip.addFrameScript(movieClip.totalFrames - 1, callbackFunc);
movieClip.play();
private function callbackFunc():void
{
movieClip.stop();
}

Solution

  • var loader:Loader = new Loader();
    var swfFile:URLRequest= new URLRequest("/test.swf");
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onFileLoaded);
    loader.load(swfFile);
    
    //I assume you have declared 'movieClip'?
    //if not do:
    //var movieClip:MovieClip;
    
    
    private function onFileLoaded(e:Event):void
    {
        movieClip = loader.content;
        addChild(movieClip);
        movieClip.play();
        addEventListener(Event.ENTER_FRAME, onEnter, true, 0, false);
    }
    
    private function onEnter(e:Event):void
    {
        if (movieClip.currentFrame == movieClip.totalFrames)
        {
            movieClip.stop();
            removeEventListener(Event.ENTER_FRAME, onEnter, true, 0, false);
            //do other stuff
        }
    }
    

    This should do what you need.