Comunidad de diseño web y desarrollo en internet online

menu activo en as3

Citar            
MensajeEscrito el 05 Ene 2011 01:18 am
Hola, me gustaría me comentaran mi script ya que no estoy seguro si es la mejor forma de realizarlo, me funciona pero no estoy seguro si estoy limpiando bien los "Listener" o si esta muy rebuscado. mu chas gracias


//Estoy creando un menu en flash con script en la linea de tiempo



tengo un clip en el scenario llamado "logo_mc" en su interior ay otro clip llamado "menu" el cual esta conformado por otros clips que representan las secciones de un menu, y mi script es este"

[as]
//inicio
var menu:Array = new Array();
menu[0] = logo_mc.menu_mc.servi_mc;
menu[1] = logo_mc.menu_mc.reel_mc;
menu[2] = logo_mc.menu_mc.wor_mc;
menu[3] = logo_mc.menu_mc.contac_mc;
for (var f in menu)
{
menu[f].addEventListener(MouseEvent.ROLL_OVER,over,false);
menu[f].addEventListener(MouseEvent.ROLL_OUT,out,false);
menu[f].addEventListener(MouseEvent.CLICK,sec,false);
}
//funciones

function over(e:MouseEvent):void
{
e.target.gotoAndStop(2);
e.target.buttonMode = true;
}
//
function out(e:MouseEvent):void
{
e.target.buttonMode = false;
e.target.gotoAndStop(1);
}
//

//secciones

function sec(event:MouseEvent):void
{
switch (event.currentTarget.name)
{
case "servi_mc" :
servicios(event);
break;
case "reel_mc" :
rell(event);
break;
case "contac_mc" :
contacto(event);
break;
case "empleo_mc" :
rell(event);
break;
case "wor_mc" :
work(event);
break;
}
}
//
function servicios(event:MouseEvent)
{
for (var f in menu)
{
menu[f].addEventListener(MouseEvent.ROLL_OVER,over,false);
menu[f].addEventListener(MouseEvent.ROLL_OUT,out,false);
menu[f].addEventListener(MouseEvent.CLICK,sec,false);
menu[f].buttonMode = true;
menu[f].gotoAndStop(1);
}
logo_mc.menu_mc.servi_mc.gotoAndStop(3);
logo_mc.menu_mc.servi_mc.removeEventListener(MouseEvent.ROLL_OUT,out);
logo_mc.menu_mc.servi_mc.removeEventListener(MouseEvent.ROLL_OVER,over);
logo_mc.menu_mc.servi_mc.removeEventListener(MouseEvent.CLICK,sec);
logo_mc.menu_mc.servi_mc.buttonMode = false;
trace("servicios");
}
//
//
function rell(event:MouseEvent)
{
for (var f in menu)
{
menu[f].addEventListener(MouseEvent.ROLL_OVER,over,false);
menu[f].addEventListener(MouseEvent.ROLL_OUT,out,false);
menu[f].addEventListener(MouseEvent.CLICK,sec,false);
menu[f].buttonMode = true;
menu[f].gotoAndStop(1);
}
logo_mc.menu_mc.reel_mc.gotoAndStop(3);
logo_mc.menu_mc.reel_mc.removeEventListener(MouseEvent.ROLL_OUT,out);
logo_mc.menu_mc.reel_mc.removeEventListener(MouseEvent.ROLL_OVER,over);
logo_mc.menu_mc.reel_mc.removeEventListener(MouseEvent.CLICK,sec);
logo_mc.menu_mc.reel_mc.buttonMode = false;
trace("reel");
}
//etc
{/as}
//espero se entienda gracias

Por fitorock

11 de clabLevel



 

safari
Citar            
MensajeEscrito el 08 Ene 2011 01:59 pm
Te recomiendo jamas usar el timeline para cambiar la interfaz de usuario. el timeline solo debe usarse para animacion, de lo contrario te puede llegar a dar dolores de cabeza muy grandes y codigos feos en muchos casos. Se podría ver mejor el codigo si no usaras el timeline y fuera mas orientado a objetos.

Por fermmm

Claber

122 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Ene 2011 03:42 pm
Muchas gracias por tu opinión. lo tendré en cuenta.

Por fitorock

11 de clabLevel



 

safari

 

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