Foros del Web » Creando para Internet » Flash y Actionscript »

Como minimizar este codigo? para no repetir misma accion

Estas en el tema de Como minimizar este codigo? para no repetir misma accion en el foro de Flash y Actionscript en Foros del Web. Hola bueno he llegado a armar estoy que me funciona pero creo que puede haber una manera mas logica y facil con un incremento del ...
  #1 (permalink)  
Antiguo 14/09/2008, 16:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 10 años, 8 meses
Puntos: 16
Como minimizar este codigo? para no repetir misma accion

Hola bueno he llegado a armar estoy que me funciona pero creo que puede haber una manera mas logica y facil con un incremento del contador en la variable "i" que tanto se usa en AS..

Código PHP:

_root
.servicios.serv1._alpha 30;

var 
checkboxListener:Object = new Object(); 
checkboxListener.click = function(evt_obj:Object) { 
 if (
evt_obj.target.selected) { 
  
_root.servicios.serv1._alpha 100
 } else { 
 
_root.servicios.serv1._alpha 30;} 
}; 

price1.addEventListener("click"checkboxListener);


  
_root.servicios.serv2._alpha 30;


var 
checkboxListener:Object = new Object(); 
checkboxListener.click = function(evt_obj:Object) { 
 if (
evt_obj.target.selected) { 
  
_root.servicios.serv2._alpha 100
 } else { 
 
_root.servicios.serv2._alpha 30;} 
}; 

price2.addEventListener("click"checkboxListener); 






Mi codigo es este que pongo ahi arriba, pero repetido 10 veces, son 10 MC y 10 checkbox (de formularios), la diferencia entre ellos esta en los nombres...

Movie Clips:
serv1, serv2, serv3.....serv10

Checkbox:
price1, price2, price3....price10


El tema es saber si puedo poner

Código PHP:
for (var i:Number1totalCheckBoxs 11;  i++) 
Y reemplazar en los codigos serv1 por serv[i] y price1 por price[i]


Algo asi:

Código PHP:
for(var i:Number=0i<totalCheckBoxsi++)
{

_root.servicios.serv[i]._alpha 30;

var 
checkboxListener[i]:Object = new Object(); 
checkboxListener[i].click = function(evt_obj:Object) { 
 if (
evt_obj.target.selected) { 
  
_root.servicios.serv[i]._alpha 100
 } else { 
 
_root.servicios.serv[i]._alpha 30;} 
}; 

price[i].addEventListener("click"checkboxListener[i]);



No me funciona

Código PHP:

_root
.servicios.serv1._alpha 30;

var 
checkboxListener:Object = new Object(); 
checkboxListener.click = function(evt_obj:Object) { 
 if (
evt_obj.target.selected) { 
  
_root.servicios.serv1._alpha 100
 } else { 
 
_root.servicios.serv1._alpha 30;} 
}; 

price1.addEventListener("click"checkboxListener);


  
_root.servicios.serv2._alpha 30;


var 
checkboxListener:Object = new Object(); 
checkboxListener.click = function(evt_obj:Object) { 
 if (
evt_obj.target.selected) { 
  
_root.servicios.serv2._alpha 100
 } else { 
 
_root.servicios.serv2._alpha 30;} 
}; 

price2.addEventListener("click"checkboxListener); 
  #2 (permalink)  
Antiguo 14/09/2008, 16:43
Avatar de nuuk_ikel  
Fecha de Ingreso: agosto-2008
Ubicación: [ Dimensión desconocida ]
Mensajes: 164
Antigüedad: 9 años, 4 meses
Puntos: 3
Respuesta: Como minimizar este codigo? para no repetir misma accion

el problema es que estas tratando a tus variables serv y price como elementos de una matriz... si quieres ke el valor de i se agrege al nombre de la variable debes ponerlo asi "price"+i puedes convertir esto en una variable para facilitar aun mas su colocacion dentro de tu codigo, recuerda que i es una variable que adquiere un valor dependiendo el numero de repeticion del bucle asi que puedes tratar a i como variable y agregar su valor a cualquier elemento.
  #3 (permalink)  
Antiguo 14/09/2008, 20:49
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 10 años, 8 meses
Puntos: 16
Respuesta: Como minimizar este codigo? para no repetir misma accion

Ohh gracias, es que no se bien cuando si y cuando no se usa de un modo o el otro modo...Pero si para matriz es...Quise concatenarlo asi per no funciono...

Ahora lo cambie asi, te entendi bien? es asi?...



Código PHP:
for(var i:Number=0i<totalCheckBoxsi++)
{

for(var 
i:Number=0i<totalCheckBoxsi++)
{

_root.servicios."serv"+i._alpha 30;

var 
checkboxListener[i]:Object = new Object(); 
checkboxListener[i].click = function(evt_obj:Object) { 
 if (
evt_obj.target.selected) { 
  
_root.servicios."serv"+i._alpha 100
 } else { 
 
_root.servicios."serv"+i._alpha 30;} 
}; 

"price"+i.addEventListener("click"checkboxListener+[i]);


Me tira error, que espera un nombre de campo despues del "." y yo le pongo un "price"+i es una concanetación que por lo que me acuerdo, no la puedo hacer a la izquierda de la formula en este caso...Creo que despues de un movieclip no puedo poner "serv" + i o estoy equivocado???

Gracias, byeee
  #4 (permalink)  
Antiguo 15/09/2008, 15:05
Avatar de nuuk_ikel  
Fecha de Ingreso: agosto-2008
Ubicación: [ Dimensión desconocida ]
Mensajes: 164
Antigüedad: 9 años, 4 meses
Puntos: 3
Respuesta: Como minimizar este codigo? para no repetir misma accion

mira la vdd viendo solo el script no puedo ayudarte, si puedieras hacer un fla de ejemplo me lo mandas y te ayudo con mucho gusto. Pero no aun sigues teniendo errores de sintaxis, puedes volver "serv"+i otra variable ej: miserv="serv"+i y asi usarla en ves de serv+i

Última edición por nuuk_ikel; 15/09/2008 a las 16:33
  #5 (permalink)  
Antiguo 27/12/2008, 17:18
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Como minimizar este codigo? para no repetir misma accion

No te olvides de los pobres, como andas?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:33.