Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/10/2010, 07:13
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Mostrar / Ocultar elementos

Hola
imagino haces los checkbox manualmente
hasta donde conozco eso es un hermoso bug de as2
cuando chequeas el selected es false y cuando le
quitas la selección pasa a true

esto siempre y cuando se use el nombre del check literalmente,
si usas esto this["check" + i].selected estará como undefined en algún punto

puedes hacer una de dos
0. en tus funciones, usar los nombres de los checks literalmente, no con this
y haciendo los values contrarios (cuando necesites true buscar false y viceversa)
1. cambiar el modo de la función de los botones (usando listeners) y los nombres de
los autos en un array, y tal vez mejorar tu función de mostrarAutos, así:

Código actionscript:
Ver original
  1. function escondeAuto() {
  2.     for(var i = 1; i < 8; i++) {
  3.         this["auto" + i]._visible = false;
  4.     }
  5. }  
  6.  
  7. var autos:Array = new Array(auto1,auto2,auto3,auto4,auto5);
  8. escondeAuto();
  9.  
  10.  
  11. var muestraAuto:Object = new Object();
  12. muestraAuto.click = function(e:Object){
  13.     var nombrecheck = String(e.target);
  14.     var id = nombrecheck.substr(nombrecheck.indexOf('k')+1,nombrecheck.length);
  15.        
  16.         if (e.target.selected)
  17.         {  
  18.             autos[id-1]._visible = true;
  19.         }
  20.         else
  21.         {
  22.             autos[id-1]._visible = false;
  23.         }    
  24. }
  25.  
  26. for(var i = 1; i < 8; i++) {
  27.     this['check'+i].addEventListener('click',muestraAuto);
  28. }

Si hicieras esto para asignar valores al array autos

Código actionscript:
Ver original
  1. var autos:Array = new Array();
  2. for(var i = 1; i < 8; i++) {
  3.     autos[i] = 'auto'+i;
  4. }

la función dejaría de funcionar correctamente,
imagino más bugs de as2, pues por ej si hago esto

Código actionscript:
Ver original
  1. for(var i = 1; i < 8; i++) {
  2.     this["check"+i].visible = false;
  3. }

al arrancar el swf lo hace bien, pero si lo pusiera dentro de la función de clic
no lo hace

en fin, espero te sirva
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 08/10/2010 a las 07:25 Razón: add_comment