SetFocus

Como puedo enviar el setfocus a un determinado control en una película flash.
Tengo unos combos y unos texto dinámicos.
Uso la sentencia de Selection.setFocus("instancia") pero no me funciona.
tengo una funcion que me valida un campos
function myfuncion(campo,campo2)
{
if(campo.text=="")
{
trace("el campo no puedo ser vacio");
campo.setFocus();
// Selection.setfocus(campo._name);
}
else
if(campo2.text=="")
{
trace("El campo2 no puede ser vacio");
campo2.seFocus();
// Selection.setFocus(campo2._name);
}
}
Asi es como la mando llamar
myfuncion(_root.texto1,_root,text2);
Por que no me envía el cursor al componente donde le indico
ahora me lo esta enviado un componente después de donde debería hacerlo
La primera vez que se realiza la validación funciona bien aquí deshabilito algunos otros controles. Cuando se vuelve a llamar
la función el foco me lo envía a un elemento después del que que debe.por ejemplo
texto1 texto2 texto3
le digo que vaya al text1 y lo envía al 2 .
Saludos

1 Respuesta

Respuesta
1
Amigo primero déjame decirte que veo un error en el código que me enviaste, aunque me imagino que sea producto del copy/paste y que no es ese el asunto, me refiero a que en la línea 13 pusiste "campo2.seFocus()" en vez de "campo2.setFocus()", pero bueno, supongo que ese no es el error, porque hay otra cosa que no veo bien. En realidad lo que sucede es que utiliza la función setFocus de una manera distinta a como la utilizo yo, quizás ese sea el problema, te recomiendo que pruebes a utilizarla como yo lo hago a ver si resuelves el problema. Yo por acá hice algunas pruebas y funcionó muy bien. De hecho tengo las fuentes por si estás interesado en que te las envíe, si es así hazme saber un correo al que pueda enviártelas.
En fin, yo escribiría la función dela siguiente manera:
function myfuncion(campo, campo2) {
if (campo.text == "") {
trace("el campo no puedo ser vacio");
Selection.setFocus(campo);
} else if (campo2.text == "") {
trace("El campo2 no puede ser vacio");
Selection.setFocus(campo2);
}
}
Hola experto ...
Pues ya había hecho pruebas con el Selection.setFocus("InstanceName") y ni así funciono siempre me mandaba a un componente siguiente al que debía enviar.
Sin embargo hice un puse esto es fue lo único que me funciono
_root.interval = setInterval(1,"campox.setFocus(); clearInterval(_root.Interval);");
Supongo que hiciste las pruebas solo poniendo tres fieldtext por eso no te ocurrió lo mismo que ami pon un combo extra y en clic de algún botón ejecuta la función y deshabilita el combo, la primera vez funcionara el bien pero vuelve a dar clic en el botón y veras que ocurre el error. Con esto usando el Flash MX 2004 Professional.
De todas formas espero tu correo mi mail es (xxxxxx) con el código que me mencionas.
Saludos ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas