Code:
<?xml version="1.0" enocoding="UTF-8"?>
<Base>
<Spacer>
<MainButton Name="About Kkthxbai" Content="testA.swf" >
<MainButton Name="test1" Content="testA1.swf" />
<MainButton Name="test2" Content="testA2.swf" />
</MainButton>
<MainButton Name="Portfolio" Content="testB.swf" />
<MainButton Name="Contact" Content="testC.swf" />
<MainButton Name="Store" Content="testD.swf" />
<MainButton Name="Inspiration" Content="testE.swf" />
</Spacer>
</Base>
Code:
var myMenu:XMLList;
var myXML:XML;
var subHolder:Sprite;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("base.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var xml:XML=new XML(e.target.data);
myXML=xml.Spacer[0];
myMenu=myXML..MainButton;
makeMenu(myXML);
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader=null;
}
function makeMenu(menuXML:*, holder:Sprite=null):void {
for (var i:* in menuXML.MainButton) {
var btn:Sprite = new Sprite();
btn.name=menuXML.MainButton[i].attribute("Name");
btn.y=i*42;
btn.graphics.beginFill(0xCCFF00);
btn.graphics.drawRect(0, 0, 100, 40);
if (holder) {
holder.addChild(btn);
btn.addEventListener(MouseEvent.MOUSE_OVER, doOverSub);
} else {
addChild(btn);
btn.addEventListener(MouseEvent.MOUSE_OVER, doOver);
}
}
}
function doOver(e:Event):void {
if (subHolder) {
for (var j:int = subHolder.numChildren-1; j >=0; j--) {
subHolder.getChildAt(j).removeEventListener(MouseEvent.MOUSE_OVER, doOverSub);
subHolder.removeChild(subHolder.getChildAt(j));
}
removeChild(subHolder);
subHolder=null;
}
trace(e.currentTarget.name+" : "+myMenu.(attribute("Name") == e.currentTarget.name).attribute("Content"));
makeSub(e.currentTarget);
}
function makeSub(targ:*):void {
var nodelist:XMLList = myMenu.(attribute("Name") == targ.name);
if (nodelist.MainButton.length()>0) {
subHolder = new Sprite();
subHolder.x=targ.x+targ.width;
subHolder.y=targ.y+targ.height-12;
addChild(subHolder);
makeMenu(nodelist, subHolder);
}
}
function doOverSub(e:Event):void {
trace(e.currentTarget.name+" : "+myMenu.(attribute("Name") == e.currentTarget.name).attribute("Content"));
}