I need help getting my loaded swf files to play the “out” transition before the next movie loads. I have a main swf with 5 buttons (movie clips) that load external swf onto the stage.
package
{
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import flash.events.*;
public class V2 extends MovieClip
{
private var sections_array:Array;
private var section_buttons_array:Array;
private var loader:Loader;
private var sectionHolder : MovieClip;
private var swf:String;
private var currentSection:int=0;
private var nextSection:int;
private var id:int=0;
private var homeLoc = "./swfs/home.swf";
public function V2()
{
init();
}
private function init():void
{
stop();
stage.frameRate=31;
preloader_mc.visible=false;
preloader_mc.fill_mc.width=0;
sectionHolder = new MovieClip();
sectionHolder.x = 37;
sectionHolder.y = 42;
addChild( sectionHolder );
sections_array = new Array('./swfs/section1.swf',
'./swfs/section2.swf',
'./swfs/section3.swf',
'./swfs/section4.swf',
'./swfs/section5.swf');
section_buttons_array = new Array(btn1,btn2,btn3,btn4,btn5);
addMenuListener();
addMenuEvents();
loadHome();
}
private function addMenuListener():void
{
for(var i:int=0;i < section_buttons_array.length;i++)
{
section_buttons_array*.id=i;
section_buttons_array*.addEventListener(MouseEvent.MOUSE_DOWN,loadSectionHandler);
}
}
private function loadHome():void
{
swf=homeLoc;//sections_array[0];
var request:URLRequest=new URLRequest(swf);
loader=new Loader();
initListeners(loader.contentLoaderInfo);
loader.load(request);
id=0;
}
private function changeSection(m:MouseEvent):void
{
id=m.currentTarget.id+1;
loader.unload();
//
sectionHolder.removeChild(loader);
removeListeners(loader.contentLoaderInfo);
loadSection(m.target.parent.id+1);
}
private function loadSectionHandler(evt:MouseEvent)
{
id = evt.currentTarget.id;
loadSection(id);
}
private function loadSection(n:int):void
{
swf=sections_array[id];
var request:URLRequest=new URLRequest(swf);
initListeners(loader.contentLoaderInfo);
loader.load(request);
}
private function initListeners(dispatcher:IEventDispatcher):void
{
dispatcher.addEventListener(Event.OPEN,start);
dispatcher.addEventListener(ProgressEvent.PROGRESS,atLoading);
dispatcher.addEventListener(Event.COMPLETE,completed);
}
private function removeListeners(dispatcher:IEventDispatcher):void
{
dispatcher.removeEventListener(Event.OPEN,start);
dispatcher.removeEventListener(ProgressEvent.PROGRESS,atLoading);
dispatcher.removeEventListener(Event.COMPLETE,completed);
}
private function start(event:Event):void
{
preloader_mc.visible=true;
}
private function atLoading(event:ProgressEvent):void
{
var n:uint=(event.bytesLoaded/event.bytesTotal)*100;
preloader_mc.fill_mc.width=n;
}
private function completed(event:Event):void
{
sectionHolder.addChild(loader);
preloader_mc.visible=false;
}
private function stopAll():void
{
for(var i:int=0;i < section_buttons_array.length;i++)
{
section_buttons_array*.stop();
sections_array*.stop();
}
}
private function addMenuEvents():void
{
for(var i:int=0;i < section_buttons_array.length;i++)
{
section_buttons_array*.mouseChildren=false;
section_buttons_array*.buttonMode=true;
section_buttons_array*.id=i;
section_buttons_array*.isPressed=false;
section_buttons_array*.addEventListener(MouseEvent.MOUSE_OVER,setOver);
section_buttons_array*.addEventListener(MouseEvent.MOUSE_OUT,setOut);
section_buttons_array*.addEventListener(MouseEvent.MOUSE_DOWN,setDown);
section_buttons_array*.addEventListener(MouseEvent.MOUSE_UP,setUp);
}
}
private function setOver(evt:MouseEvent):void
{
if(evt.target.isPressed==false)
evt.target.gotoAndStop(2);
}
private function setOut(evt:MouseEvent):void
{
if(evt.target.isPressed==false)
evt.target.gotoAndStop(1);
}
private function setDown(evt:MouseEvent):void
{
nextSection=evt.target.id;
checkState(evt.target.id);
evt.target.gotoAndStop(3);
loadSection(1);
currentSection=evt.target.id;
}
private function setUp(evt:MouseEvent):void
{
if(evt.target.isPressed==false)
evt.target.gotoAndStop(1);
}
private function checkState(n:int):void
{
for(var i:int=0;i < section_buttons_array.length;i++)
{
if(i==n)
section_buttons_array*.isPressed=true;
else
{
section_buttons_array*.isPressed=false;
section_buttons_array*.gotoAndStop(1);
}
}
}
private function removeSWF(e:Event):void
{
loader.unload();
removeEventListener("removeMe", removeSWF);
var request:URLRequest = new URLRequest(swf);
loader.load(request);
}
private function onClick(e:MouseEvent):void
{
targetID = e.currentTarget.id;
addEventListener("removeMe", removeSWF);
MovieClip(loader.content).play();
}
private function removeSWF(e:Event):void
{
loader.unload();
removeEventListener("removeMe", removeSWF);
}
}
}
The loaded swf has a stop() an intro animation and on the last frame have.
dispatchEvent(new Event(“removeMe”, true));