Como alguno de ustedes saben, estoy trabajando en “mini-blog” en Flash, el cual esta un poco olvidado.. :(.
Para tener un Blog es esencial tener un calendario, Flash tiene el Componente DateChooser, pero en lo personal ocupo los componentes muy rara vez..
Esto dio como resultado un esto:
[FLASH]http://www.tmeister.dev/archivos/calendario.swf ,160, 150 [/FLASH]
Es el tipico Calendario el cual marca por default el dia actual. El Calendario esta creado en su totalidad con ActionScript excepto los botones y el campo del mes. (no los hice por flojera.. jeje), tal vez despues cree una Clase de esto..
En fin aqui les dejo los archivos para su deleite. 😀
Por cierto el SWF solo pesa 2Kb.
Oye muy bien! Pero te tengo que decir un par de cosillas, en primer lugar podrias comentar el FLA que no se entiende nada y explikar un pokillo su funcionamiento para que nos maravillemos aun mas!! Otra cosilla es que al llegar a ENERO 2005 se para! no sigue avanzando y para atras pues llegue hasta el 2000 ypodia haber seguido asi que no se como esta la cosa por ahi, eso si muy cool. Tambien falto una “mega-funcion” para señalar dias en los que haya post y/u otras cosillas, aunque kreo que eso ya nos toka mas a nosotros y por eso estoy trabajando alli desde ahora mismo! Por lo demas un gran trabajo! y si puedes echarle un vistazo a los del enero 2005 mejor que mejor! saludetes!
Wenas
Lo de los comentarios al Fla y la “Mega-Funcion” cuando tenga un tiempo lo hago.. 😀
En cuanto a que solo llega al mes de Enero del 2005 es una validacion que se me olvido quitar.. jejeje
solo cambia esto
[code]
sig_mc.onRelease = function() {
if (anioActual<=anioReal) {
if (mesActual<11) {
verMes(++mesActual, anioActual);
} else {
mesActual = 0;
verMes(mesActual, ++anioActual);
}
}
};
[/code]
Por esto.
[code]
sig_mc.onRelease = function() {
if (mesActual<11) {
verMes(++mesActual, anioActual);
} else {
mesActual = 0;
verMes(mesActual, ++anioActual);
}
};
[/code]
Lo de los cometarios es un mal habito casi no los uso.. pero prometo que empezare a hacerlo…
Saludos!! 8)
Bueno yo tampoko suelo usar muchos los comentarios, la verdad es que esta bastante bien el code, ya “hice” lo del boton mi codigo es jodidamente cutre [poko elavorado] de todas formas te dejo el FLA, en http://www.nodani.com/calendar.fla y el codigo aki
[code]_lockroot = true;
dia_array = [“Do”, “Lu”, “Ma”, “Mi”, “Ju”, “Vi”, “Sa”];
mes_array = [“Ene”, “Feb”, “Mar”, “Abr”, “May”, “Jun”, “Jul”, “Ago”, “Sep”, “Oct”, “Nov”, “Dic”];
mesII_array = [“Enero”, “Febrero”, “Marzo”, “Abril”, “Mayo”, “Junio”, “Julio”, “Agosto”, “Septiembre”, “Octubre”, “Noviembre”, “Diciembre”];
dias_activos = [“14/5/2004”, “30/6/2004”, “15/7/2004”, “30/7/2004”];
acciones = [“ir a la playa”, “comer chino”, “comprar coche”, “visitar padres”];
function init(pos_x, pos_y) {
f_date = new Date();
anioReal = anioActual=f_date.getYear();
anio = (f_date.getYear()+1900);
mesReal = mesActual=mes=f_date.getMonth();
mes_txt.text = mesII_array[mes]+” “+Number(anioActual+1900);
dia = f_date.getDate();
diaName = f_date.getDay();
big = makeSquare(this, 154, 119, 151, “0xffffff”, “”);
big._y = pos_x;
big._x = pos_y;
for (var a in dia_array) {
clip = makeSquare(big, 22, 17, a, “0xEBEBEB”, dia_array[a]);
clip._x = a*22;
}
mes_temp = (Number(mesReal)<10) ? “0”+(Number(mesReal+1)) : Number(mesReal+1);
creaDias();
}
function makeDate(te) {
te = te.split(” “);
te_fe = te[0].split(“-“);
te_anio = te_fe[0];
te_mes = (Number(te_fe[1])<10) ? te_fe[1].substr(1, 1) : te_fe[1];
te_dia = (Number(te_fe[2])<10) ? te_fe[2].substr(1, 1) : te_fe[2];
te_hora = te[1].substr(0, te[1].length-3);
te_fecha = te_dia+” de “+mesII_array[te_mes-1]+” del “+te_anio+” @ “+te_hora;
return te_fecha;
}
function verMes(mesV, anio) {
for (nodani=250; nodani<300; nodani++) {
_root[“tempo”+nodani].removeMovieClip();
}
trace(mes+” “+anio);
f_date = new Date();
if (mesV == mesReal) {
dia = f_date.getDate();
diaName = f_date.getDay();
} else {
dia = null;
diaName = null;
}
f_date.setYear(anio);
anio = (f_date.getYear()+1900);
f_date.setMonth(mesV);
mes = f_date.getMonth();
mes_txt.text = mesII_array[mesV]+” “+Number(anio+1900);
big = makeSquare(this, 154, 119, 151, “0xffffff”, “”);
big._y = 0;
big._x = 0;
for (var a in dia_array) {
clip = makeSquare(big, 22, 17, a, “0xEBEBEB”, dia_array[a]);
clip._x = a*22;
}
mes_temp = (Number(mes)<10) ? “0”+(Number(mes+1)) : Number(mes+1);
creaDias();
}
function makeSquare(tmp_mc, ancho, largo, p, col, label) {
var tm_mc = tmp_mc.createEmptyMovieClip(“tempo”+p, p);
tm_mc.beginFill(col);
tm_mc.lineStyle(1, 0xffffff);
tm_mc.lineTo(0, 0);
tm_mc.lineTo(0+ancho, 0);
tm_mc.lineTo(0+ancho, 0+largo);
tm_mc.lineTo(0, 0+largo);
tm_mc.lineTo(0, 0);
format = new TextFormat();
format.font = “Verdana”;
format.size = 10;
format.bold = true;
format.color = 0x990000;
tm_mc.createTextField(“label_txt”, p+100, 2, 0, 0, 0);
tm_mc.label_txt.selectable = false;
tm_mc.label_txt.html = true;
tm_mc.label_txt.text = label;
tm_mc.label_txt.autoSize = true;
tm_mc.label_txt.setTextFormat(format);
return tm_mc;
}
function creaDias() {
var d = b=0;
var c = 1;
var t_date = new Date();
var ya = false;
var prof = 0;
for (var a = 0; a<=31; a++) {
t_date.setYear(anio, mes, a);
if (t_date.getMonth() == mes) {
if (!ya) {
t_dateb = new Date();
t_dateb.setYear(anio, mes, 1);
ini = t_dateb.getDay();
c = (ini == 0) ? 0 : c;
b = ini-1;
ya = true;
}
hecho = 0;
for (kil=0; kil<dias_activos.length; kil++) {
prof = big.getNextHighestDepth();
trace(prof);
amparo = new Array();
amparo = dias_activos[kil].split(“/”);
if (amparo[1] == (mes+1) && amparo[2] == anio) {
dia = amparo[0];
} else {
dia = 400;
}
if (t_date.getDate() == dia) {
dia_mc = makeBoton(prof, ++d, acciones[kil]);
hecho = 1;
}
}
//end del for
if (hecho == 0) {
dia_mc = makeSquare(big, 22, 17, prof, “0xffffff”, ++d);
}
b = (ini%7 == 0) ? 0 : ++b;
c = (ini%7 == 0) ? ++c : c;
dia_mc._x = b*22;
dia_mc._y = c*17;
ini++;
}
}
}
ant_mc.onRelease = function() {
if (mesActual>0) {
verMes(–mesActual, anioActual);
} else {
mesActual = 11;
verMes(mesActual, –anioActual);
}
};
sig_mc.onRelease = function() {
if (mesActual<11) {
verMes(++mesActual, anioActual);
} else {
mesActual = 0;
verMes(mesActual, ++anioActual);
}
};
function makeBoton(p, label, accion) {
var tm_mc = activo.duplicateMovieClip(“tempo”+p, p);
format = new TextFormat();
format.font = “Verdana”;
format.size = 10;
format.bold = true;
format.color = 0x990000;
tm_mc.createTextField(“label_txt”, p+100, 2, 0, 0, 0);
tm_mc.label_txt.selectable = false;
tm_mc.label_txt.html = true;
tm_mc.label_txt.text = label;
tm_mc.label_txt.autoSize = true;
tm_mc.label_txt.setTextFormat(format);
tm_mc.bt.onRelease = function() {
trace(accion);
};
return tm_mc;
}
init(0, 0);
[/code] he REUTILIZADO lo que teniais en cuanto a lo del boton y tal , en definitiva que como no lo entendia muy bien pues he tokado el menos codigo posible, y usado variables “estranbotikas a fin de no meterme con ninguna tuya” lo uniko que necesitas es añadir a tu fla un MC [llamado “activo” que contenga a un boton llamado “bt” de 22×17 color 0xCCCCCC] o bajarse el fla que puse,usa unos arrays uno de fechas dd/mm/aaaa y otro de acciones, por el momento son traces normales. En fin si ustedes me lo permiten pues lo usare en algun site ok? saludetes
oups! se me corto el post a mitad, bueno mejor bajate el fla, y solo que usa esos dos arrays del principio y un par de comprobaciones despues, tb uso un MC llamado “activo” que contiene a un boton “bt” de 22×17 de color gris, en fin saludetes
Umm nice…
Por cierto lo del post fue por que hay un pequeño bug al insertar codigo no parsea bien los < y los >
Ya lo arreglare…
Saludos!! 8)
otro pequeño bug… para atrás, después del 2001 sigue el 3899
muy bueno, saludos
yo habia hecho un calendario hace tiempo. los campos no los generaba con AS, pero que yo recuerde, no era tanto codigo como el de nodani.
http://www.danov.com/~evilnibble/calendario.html
Bueno, aqui las funciones mas “grandes” son makeSquare que genera los cuadros de los dias y la funcion creaDias que crea y acomoda los dias segun el mes, por lo demas el codigo es similar al tuyo. Pero siempre es bueno tener varias opciones 😀
Saludos!! 8)
bueno el codigo no es mio, Nibbles, sino del maestro Tmeister, yo solo añadi lo que se pudieran señalar diferentes dias con diferentes acciones, por lo demas el tuyo tambien esta muy bien, solo un pekeño error, selecciona el dia en todos los meses, es decir, si estamos en 4 de julio , tb señalas el 4 d agosto, d septiembre etc etc, saludetees!
qe tal,,,baje el calendario.fla el de tmeister pero no lo abre…..dice “formato de archivo no esperado” y el .swf al ejecutarlo solo sale la parte del mes ,,pero no sirve los botones,,solo esta estatico,,,,
estoy utilizando flaxh mx, no se si tenga qe ver la version,,,,alguien podria despejar la duda..gracias
seria buen un video turorial mostrando los pasos para crear el calendario en flash.
Y como se insertaria las acciones para los dias?,por ejemplo, que el 25 de diciembre te lo marque como Navidad.
a veces lo simple es suficiente por bueno
grax mil