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

:HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

Estas en el tema de :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....) en el foro de Flash y Actionscript en Foros del Web. Hola a toD@s, Estoy haciendo uno de los tipicos formularios en flash cs3 con actionScript 2. El dicho formulario nada mas empezar carga datos desde ...
  #1 (permalink)  
Antiguo 01/02/2008, 19:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Exclamación :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

Hola a toD@s,
Estoy haciendo uno de los tipicos formularios en flash cs3 con actionScript 2.
El dicho formulario nada mas empezar carga datos desde un XML...
bueno, el formulario contiene unos 10 checks box los cualos creo con comando for.

Bueno hasta aqui todo bien, los checks se crean bien , encluso al apretar y desseleccionar recoge cara id y cada label de cada check .


ej del codigo hasta ahora:
Código:
...
//creamos  peli 
var checkbox_mc:MovieClip = this.createEmptyMovieClip("checkbox_mc", this.getNextHighestDepth());

for (i=0; i<lenght.length; i++) {
		_locFunct = lenght[i];
//cremos checks		
checkbox_mc = createClassObject(mx.controls.CheckBox, "frm_iFF_CH", i, {id:_locFunct.attributes.id, label:_locFunct.attributes.nombre});
//aqui creo una funcion donde se crea 1 listener que detecta los clicks
		checkListener(checkbox,checkbox_mc);
}//end for


function checkListener(namecheck,listen) {
	var checkboxListener:Object = new Object();
	checkboxListener.click = function(evObj) {
	listen = evObj.target;
		if(listen.selected){
		trace("seleccionado");
                        trace(listen.id+listen.label);
		}else{
                        trace("desseleccionado");
                        trace(listen.id+listen.label);
		}
	};
	listen.addEventListener("click",checkboxListener);
}

Bueno ire al grano!!
El problema:
Al apretar digamos un par de checks consigo una cadena de id seleccionados 1,2,6,8 bale (usando textinput).
Pero como puedo quitar el id de la cadena, si desselecciono uno de los checks apretados?


he tratado de recoger los datos atravez de array pero no consigo de ningun modo, solo si uso el textinput.

ejemplo del textinput:
Código:
//dentro del listener reemplazando el codigo
if(listen.selected){
textinput.text += listen.id+",";
}else{
...
aver si alguen me puede echar una mano con esto

Gracias a tod@s.

Última edición por klich3; 02/02/2008 a las 13:30 Razón: :titulo:
  #2 (permalink)  
Antiguo 02/02/2008, 13:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

Upppppppppppppppppppppppppppppppppp
  #3 (permalink)  
Antiguo 02/02/2008, 14:17
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

una solucion seria llamar a jesucristo, haber si te da la mano, si levantaba muertos y hacia mirar a ciegos, de seguro te hace un script.

Jafeth
  #4 (permalink)  
Antiguo 02/02/2008, 15:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

m... no me sirve de ayuda
  #5 (permalink)  
Antiguo 02/02/2008, 15:27
Avatar de carlxime  
Fecha de Ingreso: marzo-2007
Ubicación: México
Mensajes: 180
Antigüedad: 17 años, 8 meses
Puntos: 6
Re: :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

Hola klich3,

Si son 10 checkbox(es) se me ocurre que puedes crear un arreglo con 10 posiciones.
Por lo que veo en tu código, los ids van del 0 al 9, podrías crear el arreglo y por default ponerle valor de 0 (si por default los checkboxes no están seleccionados) o 1 (si por default están seleccionados).

Código:
var ids_array:Array = new Array();
for (var i:Number = 0; i < 10; i++)
{
     ids_array.push(0); // 0 ó 1 si están seleccionados o no, como gustes
}
Ojo: El código anterior (push del array) podrías meterlo dentro del for que usas para crear los checkboxes y así ahorrarte el for.

Luego, en el listener de los checkboxes, como recibes el id puedes hacer:
Código:
if(ids_array[listen.id] == 0)
     ids_array[listen.id] == 1;
else
     ids_array[listen.id] == 0;
Y ya, si tienes que pasar los ids de los seleccionados como String recorres el for y creas el String:

Código:
var ids_str:String = "";
for (var i:Number = 0; i < ids_array.length; i++)
{
     if(ids_array[listen.id] == 1)
          ids_str += ids_array[listen.id] + ",";
}
Eso es lo que se me ocurre.

Saludos.
  #6 (permalink)  
Antiguo 07/02/2008, 10:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Re: :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

HOla carlxime,
merci de momento el metodo funciona, en cuanto acavo el codigo lo posteare aqui, asi si alguen mas se encuentra con el mismo problema, que se le facilite el trabajillo un poco

Merci por ayuda.
  #7 (permalink)  
Antiguo 12/02/2008, 13:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

Hi de nuevo bueno aki dejo el codigo final que prometi.
carlxime Merci por ayuda ;)

Código:
...
//creamos  peli 
...
var checkbox_mc:MovieClip = this.createEmptyMovieClip("checkbox_mc", this.getNextHighestDepth() );
var out:Array = new Array();
for (i=0; i<10; i++) {
		_locFunct = lenght[i];
//cremos checks
//el i*25 es la distancia hacia abajo entre los cheks
checkbox_mc = createClassObject(mx.controls.CheckBox, "frm_iFF_CH", i, {id:i++, label:("nombre"+i++), y:(i*25) });
//añadimos el false por dejecto a todos los cheks
		out.push(false);
//aqui creo una funcion donde se crea 1 listener que detecta los clicks
		checkListener(checkbox,checkbox_mc);
}//end for


function checkListener(namecheck,listen) {
	//esta cadena sera la recogere al final de todo :)
	var outFINAL:Array = new Array();
	var checkboxListener:Object = new Object();
	checkboxListener.click = function(evObj) {
	listen = evObj.target;
		if(listen.selected){
			//el listen.data es el id del check seleccionado
			//aki capta el primer click sobre check. Que en este caso seria apretado o chekeado
			out[listen.data] = true;
		}else{
			//aki capta el segundo. Que seria desseleccionado.
			out[listen.data] = false;
		}
		
	i=0;
		for(j=0;j<out.length;j++){
			if(out[j] eq true){
			outFINAL.push(i++);
			}else{
				i++;
			}
		}
	//la i en este caso nos suma los ides que tengan el data = true osea los que esten seleccionados :)
	
	trace("cadena final"+outFINAL);
	};
	listen.addEventListener("click",checkboxListener);
}
  #8 (permalink)  
Antiguo 12/02/2008, 18:46
Avatar de carlxime  
Fecha de Ingreso: marzo-2007
Ubicación: México
Mensajes: 180
Antigüedad: 17 años, 8 meses
Puntos: 6
Re: :HELP PLZ: varios check box recogidos por listener de forma array (0,1,2,3,4....)

De nada, klich3. Qué bueno que el método funcionó.

Saludos.
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 23:21.