This Domain(Admin5.com) is for Sale:

用Flash巧制精致的动态万年历

时间:2007-11-14  来源:收集  作者:TUPS


  灵活应用Flash的日期对象,结合Flash的动画设计能力和功能强大动作脚本语言的支持,可以制作出各种款式新奇、走时准确的时钟、日历。下面的“万年历”就是利用Flash的日期对象制作的。 本文来自织梦


  “万年历”实例综合运用了日期对象、数组对象、颜色对象,包括日期对象的创建,日期对象方法的调用,月份的正确显示技巧,周日与日号数对正技巧,循环控制技巧,函数
定义与调用技巧。下面我们将对万年厉的制作方法和技巧运用作具体分析说明。

织梦好,好织梦

  1.设计思路和需要解决的要害问题

织梦好,好织梦

  Flash的日期对象有很多能够处理日期和时间的方法。通过创建日期对象的实例,调用它的方法,就可以读取系统日期和时间,显示当前的日期和时间和当前年月的月历。用给定的年、月、日创建日期对象,就可以读取和显示指定年月的月历。通过按钮的形式给用户选择年月(模拟翻页动作),然后根据用户的选择,把选定年月的月历显示出来,这就构成了万年历。

织梦内容管理系统

  需要解决的要害问题包括:当前日的突出显示;确定闰年和非闰年中2月份的天数;日与周日的正确对齐显示;“翻页”显示和屏幕刷新;重置当前日期等等。 dedecms.com

  2.判定给定年份是否是闰年

织梦好,好织梦

  闰年的条件是:能被4整除且不能被100整除,或能被400整除的年份是闰年。根据这个条件,我们可以定义一个函数来实现。代码如下:

copyright dedecms

  functionleapYear(year){ 本文来自织梦

  days_in_month=newArray(31,28,31,30,31,30,31,31,30,31,30,31);

copyright dedecms

  if((year%4==0)&&(year0<>0)||(year@0==0)){

本文来自织梦

  days_in_month.splice(1,1,29); copyright dedecms

  }else{

内容来自dedecms

  days_in_month.splice(1,1,28); 织梦内容管理系统

  }

内容来自dedecms

  returndays_in_month; 织梦内容管理系统

  } 内容来自dedecms

  这个函数对传递过来的年份进行判定,假如满足上述条件:能被4整除且不能被100整除((year%4==0)&&(year0<>0))或能被400整除(year@0==0),则该年为闰年。判定是否是闰年的目的是确定每年的2月份的天数。假如是闰年,2月份就是29天,否则为28天。

织梦好,好织梦

  函数中我们先创建一个数组对象days_in_month,并用每年12个月的天数初始化。然后根据是否是闰年,用数组对象的splice修改数组中的第1个元素(注:数组元素下表从0开始),用return动作返回该数组。 dedecms.com

  调用此函数的方法如下: 织梦内容管理系统

  currentyear=2004 dedecms.com

  daysinmonth=leapYear(currentyear); dedecms.com

  返回结果存入daysinmonth数组中。 copyright dedecms

  3.确定给定日期的周日 dedecms.com

  要确定给定日期的周日,我们可以用指定的日期创建一个日期对象的实例,然后调用它的getDay()方法来实现。例如,我们想知道2008年2月1日是星期几,可以通过下面的代码来实现: 织梦内容管理系统

  GivenDate=newDate(2008,1,1);

copyright dedecms

  weekdayOfFirstDay=GivenDate.getDay();

织梦内容管理系统

  这里需要注重的是,Flash的日期对象,用0代表1月,1代表2月,依次类推。因此,在上述创建日期对象的语句中,第二个制定月份的参数是1而不是2。调用getDay()方法的结果是weekdayOfFirstDay=5(0代表星期日,5代表星期五),即2008年2月1日是星期五。 织梦好,好织梦

  4.确定给定月份的天数

内容来自dedecms

  在调用自定义函数leapYear时,我们得到一个给定年份的各月天数的数daysinmonth。要获取指定月份的天数,只需在该数组中检索即可。例如:

copyright dedecms

  currentmonth=1

dedecms.com

  numberofdays=daysinmonth[currentmonth];

copyright dedecms

  返回结果就是daysinmonth数组中第1个元素的值(即2月分的天数)。

dedecms.com

  5.把数字表示的月份转换为中文表示 copyright dedecms

  为了能够在月历中显示中文的月份名,我们创建了一个中文月份名数组cnfullmonths。访问这个数组,就可以实现这种转换。例如:

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

推荐信息

24小时热门信息