i’m learning AS3.0 just 2 days. i create a XML menu in AS3.0 /with tutorial/.
my problem is loading external SWFs in AS 3.0, SWFs layered each other? i mean first one remove the previous one and load other one? and here is my code.
var xmlPath:String = "xml/mXML.xml";
var settingsXML:XML;
var loader = new URLLoader();
loader.load(new URLRequest(xmlPath));
loader.addEventListener(Event.COMPLETE, xmlLoaded);
function xmlLoaded(e:Event):void {
if ((e.target as URLLoader) != null ) {
settingsXML = new XML(loader.data);
settingsXML.ignoreWhitespace = true;
createMenu();
}
}
function createMenu():void {
var i:uint = 0;
var dX:uint = 0;
for each (var link:XML in settingsXML.links.link) {
var mc:menuItem = new menuItem();
mc.menuLabel.text = link.@nama;
mc.swfLink = link.@link;
mc.id = link.@id;
mc.menuLabel.autoSize = TextFieldAutoSize.LEFT;
mc.x = dX;
dX = mc.x + mc.width + 10;
mc.buttonMode = true;
mc.mouseChildren = false;
mc.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addChild(mc);
i++;
}
}
function mouseUpHandler(e:Event):void {
loadSWF(e);
}
function loadSWF(targetSWF):void {
var request:URLRequest = new URLRequest(targetSWF.target.swfLink);
var loader:Loader = new Loader();
loader.load(request);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, contentLoading);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoaded);
function contentLoading(targetSWF:ProgressEvent):void {
trace(" bytesLoaded: " + targetSWF.bytesLoaded + " bytesTotal: " + targetSWF.bytesTotal);
}
function contentLoaded(targetSWF:Event):void {
addChild(loader);
}
}