Cristalab

Tutorial del componente DateField de Flash

Por: Elecash + Otros tutoriales de Elecash + 22 de Julio del 2004

Autor
avatar
Elecash
clabLevel: 7289
30 Tutoriales
13 Ejemplos

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

Tutoriales relacionados