Comunidad de diseño web y desarrollo en internet online

Duda con manejo de Array

Citar            
MensajeEscrito el 09 Nov 2009 11:48 am
Hola!
Tengo un Array con los botones de un menú y necesito que al hacer CLICK en cualquiera de ellos, los botones que su indice en el Array sea mayor que el del pulsado hagan algo, por ejemplo "mc.y += 50;".

Tengo algo así:

Código ActionScript :

var arrayBtns:Array = [A, B, C, D, E];    //El Array
for(var i:int = 0; i < arrayBtns.length; i++)   //Un for para asignar los listeners
{
   arrayBtns[i].buttonMode = true;
   arrayBtns[i].addEventListener(MouseEvent.CLICK, onClick);
}

function onClick(e:MouseEvent) : void   //La funcion CLICK
{
   var index:int = arrayBtns.indexOf(e.target);   
   trace("El boton pulsado es: " + e.target.name + " y su indice es: " + arrayBtns.indexOf(e.target));
        //Localizo la posición en el Array del boton pulsado, pero no se como referirme a los botones siguientes
}


Saludos y gracias de antemano!!

Por Fusel

Claber

339 de clabLevel



Genero:Masculino  

Madrid (España)

firefox
Citar            
MensajeEscrito el 09 Nov 2009 03:49 pm
Es solo cuestion de ponerle un poquito de atencion a tu mismo codigo...

Usas un for para recorrer todo el arreglo para esto inicialisas tu contador en "0" asi recorre desde la primer posicion,ahora si tienes un boton en la celda 3 y quieres que se recorra a partir del elemento 4 entonces pon un for que inicie su contador en 4 ;)

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Nov 2009 04:00 pm
Gracias por tu respuesta @Angel Roberto, esa fué la primera solución que me planteé, pero como soy un autentico patan programando no conseguí que funcionase.

Al final me he guidado por la posición en Y en lugar de el indice y funciona perfecto, quizás no sea la solución mas elegante pero funciona...

Código ActionScript :

for(var n:int = 0; n < arrayBtns.length; n++)
   {
      if(arrayBtns[n].y > e.target.y)
      {
         arrayBtns[n].y += 50;
      }
   }


Saludos!!

Por Fusel

Claber

339 de clabLevel



Genero:Masculino  

Madrid (España)

firefox
Citar            
MensajeEscrito el 09 Nov 2009 04:06 pm
...No se porq no te funcionaria el indice que te devolvia el "trace" era correcto??

Bastaba con poner:

Código ActionScript :

function onClick(e:MouseEvent) : void   //La funcion CLICK 
{ 
   var index:int = arrayBtns.indexOf(e.target);    
   trace("El boton pulsado es: " + e.target.name + " y su indice es: " + arrayBtns.indexOf(e.target)); 
        //Localizo la posición en el Array del boton pulsado, pero no se como referirme a los botones siguientes 
for(var i:int=index+1;i<arrayBtns.length;i++){
arrayBtns[i]....//lo que sea
}
}

Por Angel Roberto

Claber

248 de clabLevel



 

firefox

 

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