El Guru Programador
Web hosting
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Macromedia Flash
Foros del Guru > Macromedia Flash
 
Usuario problemas con SetFocus
Desconocido
Enviado - 15/12/2004
 
Hola:

Estoy realizando una página web compleja, totalmente realizada en Flash, que se forma dinámicamente tomando datos desde JSP's. Se tienen dos menús generales que siempre quedan visibles y un area central amplia en la que se muestra la info de cada una de las opciones (lo típico). Uno de sus apartados es un formulario de soporte técnico, formado por cinco textField (el primero de ellos multiline, el resto single line), y un botón "enviar". Observé que cuando le das al tabulador, en vez de pasar de un textfield al siguiente, lo q hace es irse al primer botón que encuentra hacia la derecha (q está fuera de mi formulario), y si le sigues dando al tabulador se da un garbeo por un montón de Movieclips y botones hasta llegar al textfield que uno quiere.

Total, me puse a intentar solucionarlo, capturando el evento de presionar el tabulador, de manera que yo detecte dónde esta el foco para decirle a dónde se tiene q ir. Pues bien, obtengo correctamente la ubicación del foco con getFocus, pero cuando hago el setFocus se va a donde le da la gana (y he probado mil maneras de meterle la variable q corresponde al textfield destino, y estoy seguro de q no es problema de ámbito o "scope").

Mi código:

myListener = new Object();
myListener.onKeyDown = function () {
foco=Selection.getFocus();
trace(foco);
foco2="";
puntos=0;
for (i=0;i<=foco.length;i++) {
if (puntos>=4) {
foco2=foco2+foco.charAt(i);
}
if (foco.charAt(i)==".") puntos++;
}
trace(foco2);
if (Key.isDown(Key.TAB)&&(foco2=="texto")) {
Selection.setFocus("this.nombre");
trace("paso foco a nombre");
} else if (Key.isDown(Key.TAB)&&(foco2=="nombre")) {
Selection.setFocus("_root.apellido1");
trace("paso foco a apellido1")
} else if (Key.isDown(Key.TAB)&&(foco2=="apellido1")) {
Selection.setFocus("this.apellido2");
} else if (Key.isDown(Key.TAB)&&(foco2=="apellido2")) {
Selection.setFocus("this.email");
} else if (Key.isDown(Key.TAB)&&(foco2=="email")) {
Selection.setFocus("this.boton_enviar");
} else if (Key.isDown(Key.TAB)&&(foco2=="boton_enviar")) {
Selection.setFocus("this.texto");
}
}
Key.addListener(myListener);


Ya digo, funciona la captura del tab, el getFocus lee lo q tiene q leer, pero el setFocus no. He probado paths absolutos también (_root....) y tampoco.

Muchas gracias por anticipado
 
franzz2000
1 Mensaje(s)
Enviado - 8/11/2005
 
Hola,

existe una manera mucho mas sencilla. Utiliza la propiedad tabIndex para objetos.


Ej:

Si tienes un objetos llamados boton1, boton2...

escribe:

boton1.tabIndex = 1;
boton2.tabIndex = 2;
.
.
.

de esa manera, cuando le des al tabulador este saltará por los objetos en el orden que le hayas escrito. En el ejemplo sería primero el boton1, luego el boton2 y así con todos los objetos a los que les hayas dado un número. Los objetos que no tengan tabIndex, no se activarán.


Espero que te sirva.
 
 

 

Contactos myStudio Network