Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/09/2009, 14:58
Avatar de Eskombro
Eskombro
 
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: menu desplegable en flash

Manejo ActionScript 3.0. Te diré cómo, si manejas el 2.0 alguien tendrá que traducirlo o yo lo intentaré posteriormente (si puedo, as2 ya kasi lo olvido);

Creas un óbjeto que debe funcionar como botón, para el caso de AS3 puede ser un movieclip cualquiera, pero para el AS2 debe ser un botón como tal. Digamos que se va a llamar boton1. Ahora creas el menu que se va a desplegar y lo llamas, por ejemplo menu1.

para AS3:

Ambos deben estar convertidos a símbolo, y el menu debe estar vinculado para AS. En la biblioteca das clic derecho sobre el símbolo del menu y le das en vinculación. Allí hay un Check button que dice vincular para ActionScript. Entonces al menu le das como nombre de clase Menu1. Después arrastras una instancia del botón al escenario y le das como nombre de instancia boton1 (en el panel de propiedades). Con esto ya puedes manejar las acciones con código. el menu desplegable no debe tener una instancia en el escenario.

Ahora entras al panel de acciones (f9) y escribes:

//Para definir una variable que inserte el menu
var menu1:Menu1=new Menu1;

//Y una variable que te diga si está abierto o cerrado
var abierto:Boolean=false;

//Para crear el listener que ejecutará la acción
boton1.addEventListener(MouseEvent.CLICK, desplegarMenu);
function desplegarMenu (event:MouseEvent){
if(abierto==false){
addChild(menu1);
abierto=true;
} else {
removeChild(menu1);
abierto=false;
}
}


Con esto tienes un botón. Si haces click, aparece el menu que quieres que se despliegue, y si vuelves a hacer click en él se esconde de nuevo.
Las propiedades del menu las puedes cambiar así en cualquier parte(hazlo debajo de la definición de variable para no confundirte):
menu1.x=323;
menu1.y=454;
menu1.width=252;
menu1.height=468;

o las propiedades que necesites...

Última edición por Eskombro; 13/09/2009 a las 15:08 Razón: Porque sí