Comunidad de diseño web y desarrollo en internet online

menú desplegable vertical

Citar            
MensajeEscrito el 14 Dic 2006 05:12 pm
Tengo un menú vertical que toma los datos de un fichero xml, con submenú vertical también. Lo que yo quiero es que cuando se pulse una de las opciones de menú se despliegue el submenú, pero el resto de opciones de menú que están por debajo se desplacen hasta estar debajo del submenú desplegado. He probado mil cosas y no me sale. Supongo que hay que desplazar en el estado onPress, pero no doy con la tecla. ¿Alguien me ayuda? El código es el siguiente:


// -- cargar XML
miXML = new XML();
// -- ignorar espacios los espacios en blanco que podamos encontrar en el XML
miXML.ignoreWhite = true;
// -- cargo el archivo XML en el objeto XML
miXML.load("menu.xml");
// -- función que comprueba que el archivo ha sido cargado
function comprobar(succes) {
succes ? construirMenu() : trace("Error al parsear XML");
}
// -- llamo a la función que comprueba si se cargó XML
miXML.onLoad = comprobar;
// -- función construir menú
construirMenu = function () {
// -- defino las posiciones _x / _y iniciales del menú
myx = 10;
myy = 10;
// --
for (i=0; i<miXML.firstChild.childNodes.length; i++) {
// -- tomar el valor id de cada nodo encabezado y asignarlo a la variable titulo
titulo = (miXML.firstChild.childNodes[i].attributes.id);
// -- crear los encabezados de menu
this.attachMovie("menu", titulo, i+10);
itemActual = this[titulo];
// -- cambiar el encabezado del menu por el id del nodo 'encabezado'
itemActual.titulo = (titulo);
// separar 2 px cada encabezado
itemActual._y = myy;
myy += (itemActual._height)+2;
// posicionar cada encabezado en la posición _y especificadad inicialmente
itemActual._y = myy;
// -- estado rollOver
itemActual.onRollOver = function() {
// -- mover el cabezal de lectura al fotograma que
// -- tiene la etiqueta 'sobre'
this.gotoAndStop("sobre");
}
itemActual.onPress = function() {

// -- tomar la posición _x del encabezado seleccionado
xPos = this._x;
// -- tomar la posición _y del encabezado seleccionado
yPos = this._y;
// -- generar el submenu asociado al encabezado seleccionado
construirSubmenu(this.titulo, xPos, yPos);
};
itemActual.onRollOut = function() {
// -- mover el cabezal de lectura al fotograma que
// -- tiene la etiqueta 'sobre'
this.gotoAndStop("reposo");
};
}
};
// -- función construir submenú
construirSubmenu = function (subMenuId, xPos, yPos) {
// -- descargar los submenus previamente cargados
// -- usando la función descargarSubmenu()
descargarSubmenu();
// -- creo un array que contendrá cada submenu creado
itemsCargados = new Array();
for (i=0; i<miXML[subMenuId].childNodes.length; i++) {
// -- asigno el atributo de id a la variable titulo al nuevo botón
titulo = (miXML[subMenuId].childNodes[i].attributes.id);
// -- creo una variable para el botón con el atributo link
link = (miXML[subMenuId].childNodes[i].attributes.link);
// -- crear un nuevo clip de pelicula submenu por cada nodo submenu
this.attachMovie("submenu", titulo, i+100);
// -- seleccionar el menu actual
itemActual = this[titulo];
// -- insertar el nombre del item actual en el array itemsCargados
itemsCargados.push(titulo);
// -- asignar el nombre
itemActual.titulo = (titulo);
// -- asignar link
itemActual.link = (link);
// -- mover el submenu a la posición de su encabezado
itemActual._x = xPos;
// -- mover cada clip boton a su posición _y
itemActual._y = yPos += (itemActual._height);
// -- enviar el cabezal al fotograma con la etiqueta sobre
itemActual.onRollOver = function() {
this.gotoAndStop("sobre");
};
// -- devolver el botón a su estado reposo
itemActual.onRollOut = function() {
this.gotoAndStop("reposo");
};
// -- acción al hacer clic
itemActual.onRelease = function() {
getURL(this.link, "_blank");
};
}
};
// -- función que descarga el menú previo (si existe)
descargarSubmenu = function () {
for (i=0; i<itemsCargados.length; i++) {
unloadMovie(itemsCargados[i]);
}
};

Por marturri

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Dic 2006 02:02 am
abrevia el post resume tu pregunta y no esperes que alguien analize toda esa cantidad de codigo

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.