Flash CS4 - AS3 - Desactivar varios botones al pulsar uno.

Iniciado por Rentero, 3 Septiembre 2009, 18:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Rentero

Holas!

Me paso por aquí después de mucho tiempo, a ver si alguien puede echarme una manilla con un problema que tengo con actionscript 3.

Tengo una rueda con 8 radios. Cada uno de los radios tiene 10 botones.
Lo que quiero es que cuando con el ratón pulse un botón de un radio, los demás botones de ese radio lleven su propiedad enabled a false.

Por ejemplo, uno de los radios va sobre la familia...es decir del 1 al 10 tienen que señalar como consideran que están en ese aspecto.
Los nombre de instancia de los 10 botones son: familia0, familia1, familia2...familia9;

Entonces cuando pulse familia3, yo almaceno la posicion del botón pulsado y lo que quiero es que todos(incluido familia3) se desactiven.

Cuando se produce un evento click con el raton sobre un botón uso event.target.name para quitarle el ultimo caracter(el numero 0-9) y tengo que usar el resto("familia") para desactivarlos todos...pero no se como xD

Tendré que usar un bucle para ir desactivándolos pero no se como acceder a ellos sabiendo su nombre :S

Soy así de torpe jeje

A ver si alguien me lanza un rayo de luz, porque no quiero tener que poner un array con cada uno de los grupos de botones, quiero hacerlo "bonito" ;)

Un saludo ;)
Firmado.

Azielito

pff, me quede en el AS1 jahahaha

Se me ocurre que uses eval()
http://livedocs.adobe.com/flashlite/2_es/main/00000155.html

Disculpa mi pseudo codigo, pero no se como anda ahora el action script 3 :xD

var x=1, y=cantidadRadios
on click { // evento del click a algun boton
     while(x<=y){ // ¬¬
        eval('radio'+x+'.activo=false'); // hacemos el radio1.activo=false, donde "x" es el actual
        x++; // incrementamos x :xD
    }
}


Algo asi, acabo de hacer eso con javascript y si funciona xD

Rentero

#2
jeje a sido suficiente, buscando sobre lo tuyo e encontrado una solución que me gusta(la tuya tb ehh) ;)

Al final me quedo con
this[event.target.name + i].enabled = false;

Bastante sencillo xDD, hay otra función getChildByName() por ahi pero bueno.

Vaya programador que estoy hecho xD
Gracias por la ayuda Aziel ;)
Firmado.

Azielito

Sabes que para eso estamos, no te di la respuesta pero creo que pude guiarte un poco :')