Comunidad de diseño web y desarrollo en internet online

Uso de Selection.getFocus()

Citar            
MensajeEscrito el 19 Jun 2009 10:23 am
Tengo una serie de campos de texto (de nombre de instancia respuesta0, respuesta1, .... ) y quisiera pasar de uno a otro mediante las flechas del teclado.

Con el siguiente código consigo que al pusar la flecha right me aparezca el texto "hola", pero la variable foco contiene el valor null, y debería contener "respuesta0" (nombre de instancia del campo de texto que contiene el foco), alguien sabe proque no es así?.

Gracias por vuestra ayuda.

Código :

var keyListener:Object = new Object();
foco = Selection.getFocus();

keyListener.onKeyDown = function() {

   if (Key.getCode() == Key.RIGHT) {
      trace("hola");

        if(foco == "respuesta0"){Selection.setFocus("respuesta1");}
      
      else if (foco == "respuesta1") {Selection.setFocus("respuesta2");}
    }
}
Key.addListener(keyListener);

Por jose!!!

23 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 Jun 2009 10:35 am
En realidad si seteas la propiedad tabOrder para cada campo, puedes moverte usando la tecla de tab como en cualquier formulario. Si quieres chequear el foco, hazlo dentro del onKeyDown, no afuera

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Jun 2009 10:44 am
Gracias, por la respuesta,

como deseo moverme por las casillas de un crucigrama veo mejor utilizar las flechas del teclado y poder moverme en horizontal y vertical.

He colocado trace(foco), a continuación de keyListener.onKeyDown = function() { y sigo obteniendo el valor de null.

He probado a inicializar la variable foco, haciendo foco="respuesta0" y funciona bien pero claro el usuario se debe de colocar siempre en el primer campo de texto, por ello me interesaría obtener la casilla en la que está el foco.

Gracias por vuestra ayuda.

Jose.

Por jose!!!

23 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 Jun 2009 10:59 am
Vale, un crucigrama, entonces vamos desde el principio. Darle a la flecha hacia la derecha no hace cambiar de foco ni tampoco detecta foco a menos que ya estes metido dentro de alguna casilla. Entonces si obtienes null por respuesta, pon el foco en algún lado para empezar.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Jun 2009 11:10 am
Buena idea,

escribo foco = Selection.setFocus("respuesta0"); pero no me aparece la barrita vertical indicando al usuario en que casilla está, si pulso una letra aparece en la casilla correcta y si me muevo hacia la derecha lo realiza, pero en ningún momento aparece la barrita vertical.

Sabrías como hacer que ésta apareciera?.

Gracias de nuevo por tu ayuda.

Jose.

Por jose!!!

23 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 Jun 2009 11:36 am
Para setear el foco en un campo de texto mírate TextField.setFocus en la ayuda.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Jun 2009 03:42 pm
Al final he usado, Selection.getFocus(); (devuelve la ruta del campo de texto), y Selection.setFocus("respuesta"+b);
situa el cursor en el nuevo campo de texto.


Código :


var keyListener:Object = new Object();

keyListener.onKeyDown = function() {

   a=Selection.getFocus();
   b=a.substring(16,19);
   
   
   if (Key.getCode() == Key.RIGHT) {
      b=b*1+1;
      Selection.setFocus("respuesta"+b);
    }
   if (Key.getCode() == Key.LEFT) {
      b=b*1-1;
      Selection.setFocus("respuesta"+b);
    }
   if (Key.getCode() == Key.UP) {
      b=b*1-columnas;
      Selection.setFocus("respuesta"+b);
    }
   if (Key.getCode() == Key.DOWN) {
      b=b*1+columnas;
      Selection.setFocus("respuesta"+b);
    }
   
}
Key.addListener(keyListener);

}


Jose.

Por jose!!!

23 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.