用Flash巧制精致的动态万年历
cnfullmonths=newArray("一月","二月","三月","四月","五月","六月",
"七月","八月","九月","十月","十一月","十二月"); 内容来自dedecms
currentmonth=1
本文来自织梦
cnmonth=cnfullmonths[currentmonth]; dedecms.com
6.显示月历
内容来自dedecms
年、月、日、每月天数、每月第一天周日和中文月份名预备就绪后,就可以设计月历显示了。月历显示需要解决的要害问题是日与周日的对齐显示,即某一天应该是星期几。 dedecms.com
在版面设计时,先把周日作为表头,按日、一、二、三、四、五、六的顺序排列好,然后把第一天排在对应的周日列下,其余按顺序排列即可。
在电影剪辑wnl的layer3层,我们放置了38个动态文本框电影剪辑实例,实例名分别是d0~d37,用于显示日号数。d0~d6排在第一行,对应于周日的日、一、二、三、四、五、六列,其余顺延排列。文本框电影剪辑实例内的文本框变量设为daynum。 内容来自dedecms
有了上述版面设计,我们就可以用循环来控制来解决日与周日的对齐显示问题。首先定义一个显示日号数的函数,代码如下: dedecms.com
functiondisplayDayNumbers(weekday_of_firstday,number_of_days){ dedecms.com
//初始化日号数 内容来自dedecms
day_number=1;
//循环显示日号数
dedecms.com
while(weekday_of_firstday
织梦好,好织梦
//显示日号数的电影剪辑实例名是d0~d37; copyright dedecms
g="d" weekday_of_firstday;
//显示日号数的文本框变量为daynum
内容来自dedecms
eval(g).daynum=this.day_number;
//控制周日的变量递增1 织梦好,好织梦
weekday_of_firstday=weekday_of_firstday 1;
dedecms.com
//日号数递增1 内容来自dedecms
day_number=day_number 1;
织梦好,好织梦
} 织梦内容管理系统
}
调用这个函数需要传递两个参数,一个是每月第一天的周日weekday_of_firstday;一个是每月天数number_of_days,它是给定月的实际天数加上weekday_of_firstday(在这里weekday_of_firstday刚好也就是每月前面的“空日”,即假如每月的第一天是星期五,第一行前面就有星期日~星期四5天不排)。例如,2008年2月是29天,第一天是星期五,这样number_of_days=29 5,即34天。日号数的排列位置就由weekday_of_firstday控制,排列时从d5开始,一直排到d33为止。 copyright dedecms
weekday_of_firstday每循环一次递增1。日号数则由变量day_number控制。
可以用类似下面的语句调用这个函数: dedecms.com
weekdayOfFirstDay=5
numberofdays=29
displayDayNumbers(weekdayOfFirstDay,numberofdays); 织梦内容管理系统
7.清除日号数
内容来自dedecms
当用户“翻页”显示另一个月时,该月的天数和排列位置一般都与前面显示的月份不同。因此,在显示另一个月历之前,必须先“擦干净”。实现的方法就是把所有的日号数清空,代码如下:
functionclearDaysNumber(){
//总共设置了38个显示日号数的文本框(d0~d37) 本文来自织梦
for(x=0;x<37;x ){
dedecms.com
g="d" x;
eval(g).daynum="";
dedecms.com
todayColor=newColor(eval(g)); 织梦内容管理系统
todayColor.setRGB(0x000000); 本文来自织梦
}
内容来自dedecms
}
这个函数不需要传递参数,完成的任务有两个:一个是给所有文本框电影剪辑实例的相关文本框变量赋空字符串;另一个是把文本框的颜色设回黑色,覆盖突出显示的红色。
调用此函数的语句是: 织梦好,好织梦
clearDaysNumber();
织梦内容管理系统
8.显示当前日期 织梦好,好织梦
开始播放万年历时,应该显示当前日期,并把当日突出显示。当前日期由本计算机系统日期决定。本例采用下面的代码实现:
文章评论
共有位Admini5网友发表了评论 查看完整内容