I am using this accordion menu where i am unable to link the root level link.
Flash
**Frame 1 **:
//Load XML Data
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
categoryName = [];
subNum = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
categoryName* = xmlNode.childNodes*.attributes.Name;
subNum* = xmlNode.childNodes*.childNodes.length;
}
gotoAndStop(2);
} else {
trace("Error loading XML");
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("menu.xml");
stop();
Frame 2:
//Get button height
bttnHeight = this.lev1_mc.lev1_bttn._height
//Build first level buttons
for (i=0; i<total+1; ++i) {
this.lev1_mc.lev1_bttn.duplicateMovieClip("lev1_bttn"+i, i);
this.lev1_mc["lev1_bttn"+i]._y = bttnHeight*i;
this.lev1_mc["lev1_bttn"+i].originY = this.lev1_mc["lev1_bttn"+i]._y;
this.lev1_mc["lev1_bttn"+i].destY = this.lev1_mc["lev1_bttn"+i]._y;
this.lev1_mc["lev1_bttn"+i].ID = i;
this.lev1_mc["lev1_bttn"+i].bttnName = categoryName*;
this.lev1_mc["lev1_bttn"+i].subNum = subNum*;
if (i == total) {
this.lev1_mc["lev1_bttn"+i]._visible = false;
}
//Apply Accordion Script to each button
this.lev1_mc["lev1_bttn"+i].onEnterFrame = function() {
menuScript(this);
};
//Build second level buttons
for (j=0; j<subNum*; ++j) {
this.lev1_mc["lev1_bttn"+i].lev2_mc.lev2_bttn.duplicateMovieClip("lev2_bttn"+j, j);
this.lev1_mc["lev1_bttn"+i].lev2_mc["lev2_bttn"+j]._y = bttnHeight+bttnHeight*j;
this.lev1_mc["lev1_bttn"+i].lev2_mc["lev2_bttn"+j].bttnName = xmlNode.childNodes*.childNodes[j].attributes.Name;
this.lev1_mc["lev1_bttn"+i].lev2_mc["lev2_bttn"+j].link = xmlNode.childNodes*.childNodes[j].attributes.Link
}
}
//Set tween amount here
tween = 3
//Accordion Script function
function menuScript(object) {
object._y += (object.destY-object._y)/tween
if (selectedID>=object.ID) {
object.lev2_mc._visible = true;
object.mask_mc._height = this.lev1_mc["lev1_bttn"+(object.ID+1)]._y-object.originY+2;
} else {
object.lev2_mc._visible = false;
}
if (clicked == object._name) {
object.lev2_mc._visible = true;
object.icon_mc.gotoAndStop(2);
object.destY = object.originY;
} else {
object.icon_mc.gotoAndStop(1);
if (this.lev1_mc[clicked]._y<object._y) {
object.destY = object.originY+moveTo-bttnHeight-1;
} else {
object.destY = object.originY;
}
}
}
// Function for linking (target URL or movieclip frame label)
_global.linkAction = function(object) {
//Target a URL on press
getURL(object.link, "_blank")
//Target frame labels within a movieclip on press
//_root.content_mc.gotoAndStop(object.link)
}
// Function for button selection
function clickAction(object) {
selectedID = object.ID;
moveTo = object._height;
if (clicked == object._name) {
clicked = "";
} else {
clicked = object._name;
}
}
stop();
**XML:
**
<?xml version="1.0" encoding="iso-8859-1"?>
<Menu>
<Flash Name="Flash">
<Item Name="Animations" Link="#"/>
<Item Name="Menus and Buttons" Link="#"/>
<Item Name="Preloaders" Link="#"/>
<Item Name="Site Templates" Link="#"/>
<Item Name="Applications and Utilities" Link="#"/>
</Flash>
<Audio Name="Audio">
<Item Name="Music" Link="#"/>
<Item Name="Sound" Link="#"/>
</Audio>
<Video Name="Video">
<Item Name="Video Loops" Link="#"/>
<Item Name="Video Effects" Link="#"/>
</Video>
<Fonts Name="Fonts">
<Item Name="Sans-Serif" Link="#"/>
<Item Name="Serif" Link="#"/>
<Item Name="Display Fonts" Link="#"/>
</Fonts>
</Menu>
The sub level links works fine.
But I want to link the root level xml, example :
<Flash Name=“Flash”> «---- How can i link to an URL??
if i put this <Flash Name=“Flash” Link="#" /> it doesn’t work
can some one help me??