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

Problemas con SetFocus

Estas en el tema de Problemas con SetFocus en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/12/2004, 10:55
 
Fecha de Ingreso: diciembre-2004
Mensajes: 14
Antigüedad: 13 años
Puntos: 0
Problemas con SetFocus

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
  #2 (permalink)  
Antiguo 15/12/2004, 11:22
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 14 años, 10 meses
Puntos: 1
Si entiendo lo que decis, me parece que es mas simple de lo que planteas.

nombreyapellido.tabIndex=1;
email.tabIndex=2;
motivo.tabIndex = 3;
mensaje.tabIndex=4;
botenviar.tabIndex=5;
botlimpiar.tabIndex=6;
Selection.setFocus(nombreyapellido);
Selection.setSelection(start, of)

Las primeras lineas se usan para darle el orden de tabulacion
la anteultima linea te coloca el foco en el campo que quieras.
La ultima, si dejas of te saldra lo que tengas en el tabindex1 deseleccionado, o si pones end te lo seleciona.

Es esto lo que necesitas?
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #3 (permalink)  
Antiguo 16/12/2004, 03:14
 
Fecha de Ingreso: diciembre-2004
Mensajes: 14
Antigüedad: 13 años
Puntos: 0
Mil gracias Claudio, todo solucionado. Eres un fiera
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 13:56.