Cristalab

Tutorial del componente DateField de Flash

Por: Elecash
22 de Julio del 2004
8180 de clabLevel
Otros artículos de Elecash
38,783 visitas

Para realizar este tutorial es imprescindible que antes hayas realizado el tutorial del componente DateChooser, ya que estos componentes comparten la mayoría de sus propiedades y eventos.

Para empezar, lo que haremos será poner un componente DateField en nuestra biblioteca como es normal, y copiaremos y pegaremos el código que teníamos hecho en el componente DateChooser. Cambiaremos la primera línea para atachear bien nuestro componente:

attachMovie("DateField", "mi_calendario", 1);
En este componente lo que podremos hacer es darle un formato a la fecha a mostrar en la casilla. Así podemos mediante dateFormatter, cambiar el estilo de la fecha a nuestro gusto. Vamos a probar poniendo esto debajo de nuestras propiedades:
//Formato de la fecha que se muestra en la casilla del calendario
mi_calendario.dateFormatter = function(lafecha:Date) {
//Si el día es menor qe 10 ponemos un "0" delante
if (lafecha.getDate()<10) {
mostrardia = "0"+lafecha.getDate();
} else {
mostrardia = lafecha.getDate();
}
//Si el mes es menor que 10 ponemos un "0" delante
if ((lafecha.getMonth()+1)<10) {
mostrarmes = "0"+(lafecha.getMonth()+1);
} else {
mostrarmes = lafecha.getMonth()+1;
}
//Aquí hacemos el formato que queremos
return mostrardia+"/"+mostrarmes+"/"+lafecha.getFullYear();
};

Al hacer el return estamos pasandole un nuevo formato de fecha a mostrar en la etiqueta de nuestro componente DateField.

Este componente, también tiene dos eventos nuevos, que son open y close. Estos controlan cuando se abre o cierra el menú. Vamos a añadir los listeners para estos eventos, y a programar unos traces para ver si funciona bien, añadamos este código a nuestros eventos.

//Listener para cuando abrimos el calendario
alAbrir = new Object();
alAbrir.open = function(evento) {
trace("Has abierto "+evento.target);
};
//Listener para cuando cerramos el calendario
alCerrar = new Object();
alCerrar.close = function(evento) {
trace("Has cerrado "+evento.target);
};
//Creamos los listeners
mi_calendario.addEventListener("open", alAbrir);
mi_calendario.addEventListener("close", alCerrar);

Añadiendo estos listeners podemos saber si el usuario ha abierto o cerrado nuestro DateField.

Este componente también tiene algo que DateChooser no tiene, métodos. Los métodos los podemos llamar cuando queramos, y ejecutan acciones en nuestros componentes. En este caso los métodos se llaman open() y close(), y no hay que confundirlos con los eventos, los eventos van sin los paréntesis, es importante diferenciar este punto.

Añade dos botones en tu escena y llamalos abrir_btn y cerrar_btn, ahora añade este código al final del todo:

abrir_btn.onPress = function() {
mi_calendario.open();
};
cerrar_btn.onPress = function() {
mi_calendario.close();
};

Ahora al apretar los botones podemos abrir y cerrar el calendario sin tener que apretar en el.

Y con esto ya esta todo, son muy similares, pero se usan para cosas diferentes ambos calendarios. Elegid vuestro estilo ; )

Información adicional

Ejemplo del tutorial
Archivos del tutorial
Si tienes alguna pregunta de este tutorial; puedes hacerla aqui en los foros

Artículos Relacionados