Que tal!!
Bueno aquie te pongo un ejemplo de como crear un Meni con Submenus cargando los datos por medio de XML.
Source.xml
Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<menu>
<topicos name="Buscadores">
<sitio name="Google" url="http://www.google.com"/>
<sitio name="Altavista" url="http://www.altavista.com"/>
</topicos>
<topicos name="Foros">
<sitio name="Flashla" url="http://www.flashla.com/forums"/>
<sitio name="Nomaster" url="http://www.nomaster.com"/>
<sitio name="Alesys" url="http://www.alesys.net/foro"/>
</topicos>
<topicos name="Fla's">
<sitio name="Kadazuro" url="http://www.kadazuro.com"/>
<sitio name="Alesys" url="http://www.alesys.net/foro"/>
<sitio name="FlashKit" url="http://www.flashkit.com"/>
</topicos>
</menu>
Bien Ahora el ActionScript
Código:
objeto = new XML();
objeto.ignoreWhite = true;
objeto.load("source.xml");
objeto.onLoad = duplica;
//array para Borrar Botones del SubMenu
clips = [];
//Creamos los Botones con la Info de los "segundos"
function duplica() {
nodo = this.firstChild;
basex = 10;
basey = 10;
total = nodo.childNodes.length;
for (a=0; a<total; a++) {
this["menu"+a] = attachMovie("Menu", "Menu"+a, a);
this["menu"+a].label.text = nodo.childNodes[a].attributes.name;
this["menu"+a]._x = basex;
this["menu"+a]._y = basey;
this["menu"+a].basex1 = basex;
nueColor = new Color(this["menu"+a].fondo);
nueColor.setRGB(0xC5C5C5);
//Mandamos el Tercer Nodo para utilizarlo despues =P
this["menu"+a].nodo = nodo.childNodes[a].childNodes;
basex = basex+this["menu"+a]._width+1;
}
}
function creaNombres(nodo, basex1) {
basey1 = 25;
cuantosNom = nodo.length;
//trace(cuantosNom);
for (a=0; a<cuantosNom; a++) {
//trace(nodo[a]);
//atachamos Botones y los mandamos para arriba del nivel 30
this["submenu"+a] = attachMovie("SubMenu", "submenu"+a, a+30);
this["submenu"+a]._x = basex1;
this["submenu"+a]._y = basey1;
this["submenu"+a].label.text = nodo[a].attributes.name;
this["submenu"+a].dir = nodo[a].attributes.url;
//Metemos los Clips en un array para despues borrarlos Mas facilmente
clips.push(this["submenu"+a]);
basey1 = basey1+15;
}
}
this.onMouseDown = function() {
for (a=0; a<clips.length; a++) {
clips[a]._visible = false;
}
};
Claro tienes que crear un par de Clips que seran los Botones Principales y secundarios Cada uno con una programacion diferente.
MC Menu
Código:
inv_btn.onRollOver = function() {
nueColor = new Color(fondo);
nueColor.setRGB(0x9C9C9C);
};
inv_btn.onRollOut = function() {
nueColor = new Color(fondo);
nueColor.setRGB(0xC5C5C5);
};
inv_btn.onRelease = function() {
//Borramos los Botones que anteriores
for (a=0; a<_parent.clips.length; a++) {
_parent.clips[a]._visible = false;
}
//Llamamos a la Funcion que crea los botones Secundarios.
_parent.creaNombres(nodo, basex1);
};
y el AS del MC SubMenu
Código:
inv_btn.onRelease = function() {
getURL(dir, "_blank");
//trace(dir);
};
inv_btn.onRollOver = function() {
nueColor = new Color(fondo);
nueColor.setRGB(0xC5C5C5);
};
inv_btn.onRollOut = function() {
nueColor = new Color(fondo);
nueColor.setRGB(0xFFFFFF);
};
Y esto seria Todo! Facil Nop!
De cualquier forma aqui esta el Fla y el XML
http://www.arbeitstudio.com/publi/xml.zip
Saludos!!