Comunidad de diseño web y desarrollo en internet online

evaluar variable dentro de un bucle

Citar            
MensajeEscrito el 27 Abr 2007 12:51 am
Buenas...estoy necesitando evaluar una variable que se genera en un for para darle comportamiento a una serie de botones...el script que tengo es el siguiente:

for (i=0; i<100; i++) {
eval("_root.CHACRAS.chacras_botones.btn"+i).onPress = function() {
_root.chacra_num.text = _root.Arr_Obras[i][0];
};
}

la cuestion es la siguiente....yo necesitaria que cuando haga el bucle o transforme la i que esta dentro de " _root.Arr_Obras[i][0]" en el numero correspondiente o que transforme el _root.Arr_Obras[i][0] al contenido que esta dentro del array. Lo unico que logro con la sentencia como la tengo es que todos los botones llamen a _root.Arr_Obras[99][0] que es el valor en el que queda la variable i...

espero alguien me pueda dar una mano....

saludos

Por KchTT

16 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 27 Abr 2007 02:02 am
a ver... pero que necesitas hacer?... es que no me queda muy claro.. tienes 99 botones? o que onda... por que por lo que me muestras, tienes 99 botones... pero que es lo que necesitas hacer?
a mi se me ocurre algo como esto:

Código :

var inttotalBotones:Number = 10;
for(i:Number=0; i<=inttotalBotones; i++)
{
   this.attachMovie("Button","btn"+i,this.getNextHighestDepth(),Button);   
   configureButton(eval("btn"+i),String(i),i*25+15);
}

function configureButton(pmyButton:Object,ptxtLabel:String,intYpos)
{
   pmyButton.label = ptxtLabel;
   pmyButton._y = intYpos;
   addListeners(pmyButton);
}

function addListeners(pmyButton:Object)
{
   var strnombreObjeto:String
   var objetoActual:Object;
   
   pmyButton.onPress = function() {
       strnombreObjeto= pmyButton._name;      
      for(i:Number = 0; i<=inttotalBotones; i++)
      {         
         objetoActual = eval("btn"+i);
         if (objetoActual._name != strnombreObjeto)
         {
            objetoActual.label = "A mi el boton "+i+" me diste click";
         }
         else
         {
            objetoActual.label = "A mi no!";
         }
      }      
   }
}

Claro.. este es un ejemplo "sencillo", pero lo puedes modificar para que funcione con lo que tu necesitas, funciona para 10 botones, pero pueden ser mas, y lo que hace es que le cambia la etiqueta a todos los botones de la misma manera, pero al boton actual no.
Espero te sirva.
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

msie
Citar            
MensajeEscrito el 27 Abr 2007 01:38 pm
el tema es el siguiente, tengo 350 botones con formas irregulares y distintas entre si.....es un campo dividido en lotes.......lo que quiero hacer es asignarle el comportamiento a todos los botones de una sola vez para no cargarlos uno por uno y si tengo que modificar algo de la funcion no tenga que hacerlo uno por uno

Por KchTT

16 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 27 Abr 2007 02:27 pm
Cambia tu codigo como sigue:

Código :

for (i=0; i<100; i++) {
   objChacra = _root.CHACRAS.chacras_botones["btn"+i];
   objChacra.i = i;
   objChacra.onPress = function() {
      _root.chacra_num.text = _root.Arr_Obras[this.i][0];
   };
}

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 27 Abr 2007 07:13 pm
pues sería algo como

Código :

function addListeners(pnumeroBotones:Number)
{
   for(i:Number = 0; i<=pnumeroBotones; i++)
      {         
         objetoActual = eval("btn"+i);
         objetoActual.onPress = buttonClickHandle;
      }         
}

function buttonClickHandle()
{
   trace(this);
}

Donde solo mandarias llamar a la funcion así

Código :

addListeners(350);


Claro, en este caso estoy poniendo una acción onPress, pero tu la puedes modificar poniendo el evento que necesites y modificando la funcion buttonClickHandle para que sea lo que tu necesitas.
Saludos y espero te sirva.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

msie
Citar            
MensajeEscrito el 27 Abr 2007 09:40 pm
graciassss, lo pude solucionar

saludos

Por KchTT

16 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 28 Abr 2007 09:38 pm
zelgadiss01, tu avatar excede el tramaño máximo (100x100 si no me equivoco), por favor reducilo.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie

 

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