Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/04/2003, 19:42
Avatar de TMeister
TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
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!!