Comunidad de diseño web y desarrollo en internet online

Ordenar menú en dos columnas con action script 3

Citar            
MensajeEscrito el 03 Sep 2012 05:26 am
Quisiera ver quien me puede echar la mano con esto. En flash CS5 tengo un menú con 10 botones con AS3 en vertical pero quisiera acomodarlos en 2 columnas para que me queden 5 y 5 botones en cada columna. De antemano agradezco el tiempo dedicado, saludos!!



el código que uso es este:

Código ActionScript :

fm_button.visible = false;
var menu_label:Array = new Array("Concierto Reggae", "Noche de Martinis",  "Teaste Presentation", "Concierto Reggae", "Noche de Martinis",  "Teaste Presentation", "Concierto Reggae", "Noche de Martinis",  "Teaste Presentation");

var total:Number = menu_label.length;
var i:Number = 0;
var page:Number;
var main_menu:MovieClip = new MovieClip();
stage.addChild(main_menu);

for (i = 0; i < total; i++)
{
   var btn = new flashmo_button();
   btn.name = "btn" + i;
   btn.x = fm_button.x;
   btn.y = fm_button.y + i * ( fm_button.height - 40 );
   btn.buttonMode = true;
   btn.item_no = i;
   btn.fmp_click_area.addEventListener( Event.ENTER_FRAME, btn_enter );

   var each_substring:Array = menu_label[i].split("|");
   btn.fmp_button_label.fm_label.text = each_substring[0];
   btn.item_url = each_substring[1];
   main_menu.addChild(btn);
}

function btn_over(e:MouseEvent):void
{
   e.target.parent.over = true;
}

function btn_out(e:MouseEvent):void
{
   e.target.parent.over = false;
}

function btn_click(e:MouseEvent):void
{
   var mc = e.target.parent;
   if ( mc.item_url != undefined )
   {
      navigateToURL( new URLRequest( mc.item_url ), "_parent" );
   }
   else
   {
      change_page(mc.item_no);
   }
}

function btn_enter(e:Event):void
{
   var mc = e.target.parent;
   if ( mc.over == true )
   {
      mc.nextFrame();
   }
   else
   {
      mc.prevFrame();
   }
}

function change_page(no:Number):void
{
   for (var i:Number = 0; i < main_menu.numChildren; i++)
   {
      var mc = MovieClip( main_menu.getChildAt(i) );
      mc.over = false;
      mc.flashmo_click_area.visible = true;
      mc.flashmo_click_area.addEventListener( MouseEvent.ROLL_OVER, btn_over );
      mc.flashmo_click_area.addEventListener( MouseEvent.ROLL_OUT, btn_out );
      mc.flashmo_click_area.addEventListener( MouseEvent.CLICK, btn_click );
   }
   var mc_selected = MovieClip( main_menu.getChildAt(no) );
   mc_selected.over = true;
   mc_selected.fmp_click_area.visible = false;
   mc_selected.fmp_click_area.removeEventListener( MouseEvent.ROLL_OVER, btn_over );
   mc_selected.fmp_click_area.removeEventListener( MouseEvent.ROLL_OUT, btn_out );
   mc_selected.fmp_click_area.removeEventListener( MouseEvent.CLICK, btn_click );

   page = no + 1;
   play();
}

change_page(0);// default page on load

fmp_credit.addEventListener( MouseEvent.CLICK, goto_fm );

function goto_fm(e:MouseEvent):void
{
   navigateToURL( new URLRequest( "http://www.lido-beach.com" ), "_parent" );
}



¿que habría que agregar para lograr 2 columnas de 5 y 5 botones en lugar de una de 10 botones? gracias!

Por Carlos-Damon

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Sep 2012 07:12 pm
La idea de cualquier cuadrícula es usar dos for anidados, una para filas, otro para columnas y usar ambos datos para la posición, ejemplo

Código ActionScript :

var columnas:int = 2;
var fias:int = 5;
for(var c:int = 0; i<columnas; i++){
   for(var f:int = 0; i<filas; i++){
       (..)
       btn.x = c *50; //50 es el ancho del boton + offset
       btn.y = f*30 //30 es el alto del boton + offset
       addChild(btn)
   }
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Sep 2012 09:41 pm
Hola, antes que nada gracias por contestar, ya lo intenté con ese código (una disculpa de antemano pues copié y lo agregué al final de mi código) y primero me salió un error donde vienen los paréntesis "(..)" lo borré y ahora si no me dio error, pero sigue sin acomodarse en dos columnas, ¿Que más podría hacer? estoy seguro que algo ando haciendo mal...

Por Carlos-Damon

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2012 04:26 am
Help me! ya intenté varias cosas pero no puedo dividir mis 10 botones en 2 columnas, agradecería mucho su valiosa ayuda. :)
:wink:

Por Carlos-Damon

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2012 10:06 am
Copypasteaste lo que te puse incluído el paréntesis con los tres puntitos... ¿en serio?
Te paso un ejercicio, lo haces y lo estudias hasta que lo entiendas, luego vuelves a esto:

- En una peli nueva dibujas un cuadradito, lo conviertes en MovieClip, en la biblioteca le haces click dereccho, le pones como nombre de clase cuadrado, aceptas el cuadro que te dice que te va a crear la clase porque no encuentra ninguna con ese nombre
- En el primer frame del único fotograma pones este código

Código ActionScript :

var columnas:int = 2;
var filas:int = 5;
for(var c:int = 0; c<columnas; c++){
   for(var f:int = 0; f<filas; f++){
      var btn:cuadrado = new cuadrado();
       btn.x = c *50; //50 es el ancho del boton + offset
       btn.y = f*30 //30 es el alto del boton + offset
       addChild(btn)
   }
}


De paso corrijo la variable de los contadores a la que le había puesto i (la costumbre, jejeje)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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