Comunidad de diseño web y desarrollo en internet online

Problema con onSetFocus o killfocus

Citar            
MensajeEscrito el 28 Abr 2007 07:11 pm
Hola gente!

A ver si alguien me ilumina!
Estoy haciendo un formulario de reserva que incluye una fecha de entrada y otra de salida.
Para ello he usado la version del componente datechooser con skin del SparkEvents Calendar.
Por dar más datos, hay un campo de texto + el componente, que viene metido en un clip de película que hace las veces de popup para elegir la fecha.
Funciona perfectamente.
El caso es que si lo uso con cualquier otro componente da problemas:
Una vez clicado uno de los calendarios, sale el popup aunque haga clic fuera del campo de texto, en cualquier parte de la película...

Código :

//le dice al date box que muestre el calendario y le pasa la fecha clicada
startDate_txt.onSetFocus = endDate_txt.onSetFocus = function () {
   if (this.dateObj == undefined) this.dateObj = new Date();
   calPopup_mc._visible = true;
   // captura cualquier mouseDown event y lo pasa al killfocus event
   calPopup_mc.onMouseDown = this.onKillFocus;
   // le dice al calendario la fecha actual del texto
   calPopup_mc.calendar_ec.setDate(this.dateObj);
   // establece las variables para saber qué abre el calendario popup
   dateField = this._name;


Creo que la solución podría estar en otra orden para focus, pero mis concimientos o llegan...
Si por favor alquien puede orientarme o simplemente decirme si es que es así y ya, al menos podré avanzar un poquito o dejarlo por imposible...

Muchas gracias por vuestra molestia.

Por marxz

24 de clabLevel



 

Madrid

msie7
Citar            
MensajeEscrito el 28 Abr 2007 09:18 pm
Me contesto a mi misma porque ya lo solucioné, por si le vale a otro...
Con poner el resto de los componentes en una capa distinta fuciona!!!!
A veces Flash tiene este tipo de tonterías...
parece que tuviera personalidad, jajaja.

Por marxz

24 de clabLevel



 

Madrid

msie7
Citar            
MensajeEscrito el 01 May 2007 11:11 pm
Hola gente!
Esto ya parece un monólogo, pero continúo:

Nada de duendes esta vez, mi ignoracia...
efectivamente falla en cuanto meto otro componente,
en cualquier sitio de la pelicula, aunque sea en la biblio.
A parte del código de arriba me faltó publicar la parte
donde define el unFocus:

Código :

// tell the date box to hide the calendar when unfocused
entratxt.onKillFocus = saletxt.onKillFocus = function () {
// check the unfocus wasn't called by the calendar being clicked
if (!calPopup_mc.hitTest(_root._xmouse,_root._ymouse,true)) {
// hide the calendar
calPopup_mc._visible = false;
delete calPopup_mc.onMouseDown;
}
}


No sé si las dos últimas líneas son redundantes, pero el original era así,
y sin componentes funciona.
Pero al meter un componente el Hit area se invierte y el pop up solo
desaparece cuando clico dentro de la caja de texto y aparece
cuando clico en cualquier otro lado...

Os invito a que me echeis una ayudita y esto se convierta en un diálogo!
Gracias, gente!

Por marxz

24 de clabLevel



 

Madrid

msie7
Citar            
MensajeEscrito el 02 May 2007 06:10 am
resume para comenzar el dialogo son muchas lineas para leer prefiero seguir con mi novela

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 02 May 2007 02:23 pm
Gracias por tu respuesta indaka!
Intentaré resumir como para pasar el filtro del aburrimiento, pero no tanto que no se entienda... difícil, bien.

Uso el datefield del ejemplo del SparkEventsCalendar.
En realidad es un campo de intro text con un pop up en clip de pelicula,
visible o no según cliques dentro o fuera del campo de texto.
El clip del popup tiene dentro el datechooser skineado y compilado a clip.

Todo funciona a la perfección.
El problema entra en cuanto meto cualquier otro componente en la película,
aunque sea en la biblio.
Entonces toma los eventos de popup visible al revés:
Se hace visible cuando clico en cualquier lado de la pelicula,
e invisible clicando en el intro txt.
Esto además impide pasar meses adelante o atrás.

Las dos partes de código que afectan son las ya descritas arriba.
Y el link a donde ando dándole vueltas es:
http://www.stopinroom.com/reservadate.html

Espero así sea inteligible.
Perdona Inyaka, pero a veces uno, aun con todo el respeto, no sabe como postear para que nadie se moleste.
Agradezco sinceramente toda la ayuda de este foro.

Por marxz

24 de clabLevel



 

Madrid

msie7
Citar            
MensajeEscrito el 04 May 2007 12:56 pm
Ahora sí!
Problema resuelto.
Aquí llega la actualización del SparkEventsCalendar a AS2!

Para evitar el problema con onsetFocus y onkillFocus
basta con añadir esta línea al final del código del primer frame:

Código :

focusManager.enabled = false;


Gracias a la ayuda de James Peek de Sparkos,
que me puso en la pista de que donde funcionaba bien era en AS1,
que lo había probado con los componentes de Flash, pero no en AS2...

Espero que a alguien le sirva de ayuda.
Saludos a todos!

Por marxz

24 de clabLevel



 

Madrid

msie7

 

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