miFecha=new Date();
dia=miFecha.getDate();//nos devuelve el dia del mes (hoy es 12)
mes=miFecha.getMonth(); //nos devuelve el mes empezando a contar desde 0 (enero = 0)
anyo=miFecha.getYear()+1900; //al año se le suman 1900 pq nos devuelve el valor desde esa fecha (año 1900)
ahora tenemos unos datos super fashiones para montar nuestro super calendario en 2 minutos :)
como que los meses empiezan desde 0 pues crearemos un array con los nombres de los meses para simplemente sacar el nombre a partir del numero de mes, ejemplo:
Estamos a 6, la posición 6 del array es Julio, pues:
mesActual=meses[mes]; //mes lo hemos sacado más arriba eh
Pues ya tenemos el mes en letra y número, sigamos.
ahora lo que podríamos hacer es una función que nos generara una rejilla con campos de texto dinamicos para ir rellenando con el dia del mes. a estos se les puede activar el HTML para darle un poquito de formato, no se, por ejemplo el dia de hoy en azul y los domingos de color rojo, veamos como lo podemos hacer (solo la rejilla de números con un titulo que será el nombre del mes, del mes que le pasemos como argumento, claro, pero eso lo veremos más alante):
function generaRejilla(){
//profundidad para los clips que crearemos
var d=0;
//creamos el clip dnd metermos el calendario
_root.createEmptyMovieClip("calendario",0);
//creamos un campo de texto para el mes
d++;
calendario.createTextField("elMes",d,20,0,100,20);
calendario.elMes.border=true;
//hacemos un bucle de 7x6 ya que una semana
//tiene 7 dias y un mes puede ocupar 6 filas
for(i=0;i<7;i++){
for(j=0;j<6;j++){
//incremento para la profundidad de los clips:
d++;
//creamos un campo de texto y le damos
//un nombre de instancia que luego podamos
//rellenar con facilidad usando otro bucle
//igual que este:
calendario.createTextField("dia"+i+"_"+j,d,i*20,(j*20)+20,20,20);
//creamos una referencia al campo de texto
//que acavamos de crear:
tClip=calendario["dia"+i+"_"+j];
//activamos que se pueda usar HTML
tClip.html=true;
tClip.border=true;
//tClip.htmlText="<b>"+d+"</b>";
}
}
}
generaRejilla();
olé, ya tenemos la rejilla!!!!
ahora rellenamos la rejilla con nuestros datos y ...
function rellenaRejilla(dia,mes,anyo){
//rellenamos el campo superior con el mes y el año
calendario.elMes.text=meses[mes]+" del "+anyo;
//ahora vamos a sacar el dia donde empezamos a rellenar
//el calendario, para ello modificamos la fecha del objeto
//Date actual (miFecha) a dia 1.
miFecha.setDate(1);
primerDia=miFecha.getDay()-1;
if(primerDia==-1)primerDia=6;
//y el total de dias que tiene el mes
ttlDias=diasPorMes[mes];
//tenemos la variable que nos cuenta los dias del mes
diaadia=0;
//iniciamos el bucle
for(j=0;j<6;j++){
//para que el dia nos empieze donde pertenece en el calendario
//tenemos que iniciar el bucle a partir de ese dia
for(i=primerDia;i<7;i++){
//como que los siguientes dias empiezan a partir de la
//primera posición, pues definimos primerDia como 0
//i el bucle empezará de 0
primerDia=0;
//si el dia actual es inferior al total de dias que tiene el mes
//rellenaremos los campos
if(diaadia<ttlDias){
//incrementamos el dia actual
diaadia++;
//creamos una instancia a un clip para abreviar (no se si es muy correcto usar instanciar para esto)
tClip=calendario["dia"+i+"_"+j];
//si el dia del bucle es igual al dia actual
//aplicaremos un estilo al dia (de color rojo)
//mientras que si no, pues solo negrita
if(diaadia==dia){
tClip.htmlText="<b><font color='#ff0000'>"+diaadia+"</font></b>";
}else{
tClip.htmlText="<b>"+diaadia+"</b>";
}
}
}
}
}
//llamamos a la función rellenar rejilla con el dia, mes y año que queremos
// que nos muestre nuestro super calendario domestiko!!
rellenaRejilla(dia,mes,anyo);
ya tenemos el super domestikalendario! (cutre flash, claro)
XrV
joder, me curro un tutorial y nadie dice nada... al menos desirme si sentiende o algooooooo :P
XrV
me animaría a hacer una pequeña introducción al objeto date, así que como que tengo un ratito frik me la juego:
el objeto date es un objeto que podemos instanciar:
miFecha = new Date();
a partir de este momento podemos sacar el segundo, minuto, hora, dia, mes y año del momento en el que hemos instanciado el objeto Date.
Para sacarle dicha información simplemente llamamos a algunos metodos que nos facilita flash (listado):
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
getYear()
a partir de aquí sacaremos la fecha actual.
miFecha=new Date();
dia=miFecha.getDate();//nos devuelve el dia del mes (hoy es 12)
mes=miFecha.getMonth(); //nos devuelve el mes empezando a contar desde 0 (enero = 0)
anyo=miFecha.getYear()+1900; //al año se le suman 1900 pq nos devuelve el valor desde esa fecha (año 1900)
ahora tenemos unos datos super fashiones para montar nuestro super calendario en 2 minutos :)
como que los meses empiezan desde 0 pues crearemos un array con los nombres de los meses para simplemente sacar el nombre a partir del numero de mes, ejemplo:
meses=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
"Septiembre","Octubre","Noviembre","Diciembre");
también necesitamos un listado del total de dias que tiene cada mes:
diasPorMes=new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
y si el año es bisiesto pues modificamos la posición 1 del array (febrero) de diasPorMes:
if (((anyo % 4 == 0) && (anyo % 100 != 0)) || (anyo % 400 == 0)) diasPorMes[1] = 29;
Estamos a 6, la posición 6 del array es Julio, pues:
mesActual=meses[mes]; //mes lo hemos sacado más arriba eh
Pues ya tenemos el mes en letra y número, sigamos.
ahora lo que podríamos hacer es una función que nos generara una rejilla con campos de texto dinamicos para ir rellenando con el dia del mes. a estos se les puede activar el HTML para darle un poquito de formato, no se, por ejemplo el dia de hoy en azul y los domingos de color rojo, veamos como lo podemos hacer (solo la rejilla de números con un titulo que será el nombre del mes, del mes que le pasemos como argumento, claro, pero eso lo veremos más alante):
function generaRejilla(){
//profundidad para los clips que crearemos
var d=0;
//creamos el clip dnd metermos el calendario
_root.createEmptyMovieClip("calendario",0);
//creamos un campo de texto para el mes
d++;
calendario.createTextField("elMes",d,20,0,100,20);
calendario.elMes.border=true;
//hacemos un bucle de 7x6 ya que una semana
//tiene 7 dias y un mes puede ocupar 6 filas
for(i=0;i<7;i++){
for(j=0;j<6;j++){
//incremento para la profundidad de los clips:
d++;
//creamos un campo de texto y le damos
//un nombre de instancia que luego podamos
//rellenar con facilidad usando otro bucle
//igual que este:
calendario.createTextField("dia"+i+"_"+j,d,i*20,(j*20)+20,20,20);
//creamos una referencia al campo de texto
//que acavamos de crear:
tClip=calendario["dia"+i+"_"+j];
//activamos que se pueda usar HTML
tClip.html=true;
tClip.border=true;
//tClip.htmlText="<b>"+d+"</b>";
}
}
}
generaRejilla();
olé, ya tenemos la rejilla!!!!
ahora rellenamos la rejilla con nuestros datos y ...
function rellenaRejilla(dia,mes,anyo){
//rellenamos el campo superior con el mes y el año
calendario.elMes.text=meses[mes]+" del "+anyo;
//ahora vamos a sacar el dia donde empezamos a rellenar
//el calendario, para ello modificamos la fecha del objeto
//Date actual (miFecha) a dia 1.
miFecha.setDate(1);
primerDia=miFecha.getDay()-1;
if(primerDia==-1)primerDia=6;
//y el total de dias que tiene el mes
ttlDias=diasPorMes[mes];
//tenemos la variable que nos cuenta los dias del mes
diaadia=0;
//iniciamos el bucle
for(j=0;j<6;j++){
//para que el dia nos empieze donde pertenece en el calendario
//tenemos que iniciar el bucle a partir de ese dia
for(i=primerDia;i<7;i++){
//como que los siguientes dias empiezan a partir de la
//primera posición, pues definimos primerDia como 0
//i el bucle empezará de 0
primerDia=0;
//si el dia actual es inferior al total de dias que tiene el mes
//rellenaremos los campos
if(diaadia<ttlDias){
//incrementamos el dia actual
diaadia++;
//creamos una instancia a un clip para abreviar (no se si es muy correcto usar instanciar para esto)
tClip=calendario["dia"+i+"_"+j];
//si el dia del bucle es igual al dia actual
//aplicaremos un estilo al dia (de color rojo)
//mientras que si no, pues solo negrita
if(diaadia==dia){
tClip.htmlText="<b><font color='#ff0000'>"+diaadia+"</font></b>";
}else{
tClip.htmlText="<b>"+diaadia+"</b>";
}
}
}
}
}
//llamamos a la función rellenar rejilla con el dia, mes y año que queremos
// que nos muestre nuestro super calendario domestiko!!
rellenaRejilla(dia,mes,anyo);
ya tenemos el super domestikalendario! (cutre flash, claro)
bueno, pues mejor si os pillais el FLA de la web:
http://www.palaueb.com/dmstk/
y me la he jugado y en una hora he terminado... tadaaaaaaaaannn!! :P
Usuario desconocido
Víste: http://www.google.es/search?q=calendar+flash&ie=UTF-8&hl=es&meta=