语录提交--登陆--注册--论坛交流--站长博客

AS菜鸟教程13 Date日期对象

[作者:thymecd][日期:2008-01-21][导航:Flash教程 >> ActionScript2 >> AS菜鸟教程13 Date日期对象]
  

Date对象
Date 对象使您可以获取相对于通用时间(格林尼治平均时,现在叫做通用时间或 UTC)或相对于运行 Flash Player 的操作系统的日期和时间值。Date 对象的方法不是静态的,但仅应用于调用方法时指定的 Date 对象的单个实例。Date.UTC 方法是个例外,它是一个静态方法。 
Date 对象以不同的方式处理夏时制,具体取决于操作系统和 Flash Player 的版本。
若要调用 Date 对象的方法,必须首先使用 Date 对象的构造函数创建一个 Date 对象的实例。

13.1  Date对象
Date对象(动作面板的“对象”/“核心”目录)也是ActionScript重要的内置对象之一。Date对象提供了很多处理通用时间(格林威治时间)或系统时间的方法。
Date对象由七部分构成,它们是:
= year:0~99表示1900~1999年,如果要表示在此以外的年,必须使用完整的4位数字。
= month:0~11表示1月~12月。
= date:1~31表示日期。
= hour:0~23表示小时数。
= minute:0~59表示分钟数。
= second:0~59表示秒数。
= millisecond:0~999表示毫秒数。
Date对象主要有两种创建方法,一种是通过指定时间创建一个Date对象的实例,这时至少要用到year和month两个参数,如下所示:
myDate = new Date(2003, 7, 8, 13, 16, 500);
另一种方法是通过获取系统时间创建一个Date对象的实例,这时不指定任何参数,如下所示:
myDate = new Date();
创建Date对象后即可使用Date对象的方法。如下所示:
myDate = new Date();
year = myDate.getYear();
fullyear = myDate.getFullYear();
month = myDate.getMonth();
dates = myDate.getDate();
hour = myDate.getHours();
minute = myDate.getMinutes();
second = myDate.getSeconds();
millisecond = myDate.getMilliseconds();
day = myDate.getDay();
time = myDate.getTime();
trace(year+","+fullyear+","+month+","+dates+","+hour+","+minute+","+second+","+millisecond+","+day+","+time);
getYear方法返回简写年份,如1999年返回99,2003年返回103。
getFullYear方法返回完整的4位数年份,如2003年返回2003。
getMonth方法返回月份,如7月返回6。
getDate方法返回日期,如7月16日返回16。
getHours方法返回小时数,如下午1点返回13。
getMinutes、getSeconds和getMilliseconds方法分别返回分钟、秒和毫秒数。
getDay方法返回星期数,星期日返回0,星期一返回1,以此类推。
getTime方法返回自1970年1月1日上午8时至Date对象所指时间的毫秒数。
运行脚本,输出窗口中显示:
103,2003,6,8,13,56,45,679,2,1057643805679
即:2003年7月8日13点56分45秒679毫秒,星期二,距离1970年1月1日上午8时共1057643805679毫秒。
13.2  练习:万年历
本例使用Date对象制作如图13-1所示的万年历。


图13-1  万年历
使用该例万年历可以翻查任何一年任何一月的日历,单击返回按钮可以查看当天所在的月份,且当天以白色显示,如图13-1所示。本例的制作过程如下:
(1)在图层back加入背景图片back.jpg。
(2)在图层yearmonth添加两个动态文本框,变量名为displaymonth和displayyear,分别用来显示月和年,字体为Vineta BT,颜色为黄色。
(3)在图层button添加按钮,分别用来控制月份上翻查、月份下翻查、年份上翻查、年份下翻查和返回当天。
(4)建立一个影片剪辑元件daynum,在其中添加一个变量名为num的动态文本框,用来显示日期,它的颜色为绿色。在库面板中为daynum元件添加链接,链接标识符也为daynum。
(5)在图层Actions的第1帧中添加如下ActionScript:
MyDate = new Date();                   //创建Date对象以获取系统时间
MyCurYear = MyDate.getFullYear();
MyCurMonth = MyDate.getMonth();
MonthNames = new array();               //记录每个月名称的数组
DaysOfMonth = new array();              //记录每个月天数的数组
if (MyCurMonth == 1) {                  //如果是二月,判断是否为闰年
 if ((MyNewYear%4 == 0) && (MyNewYear%100 != 0) || (MyNewYear%400 == 0)) {
  DaysOfMonth[1] = 29; 
 } else {
  DaysOfMonth[1] = 28;
 }
}
MonthNames[0] = "January";
MonthNames[1] = "February";
MonthNames[2] = "March";
MonthNames[3] = "April";
MonthNames[4] = "May";
MonthNames[5] = "June";
MonthNames[6] = "July";
MonthNames[7] = "August";
MonthNames[8] = "September";
MonthNames[9] = "October";
MonthNames[10] = "November";
MonthNames[11] = "December";
DaysOfMonth[0] = 31;
DaysOfMonth[2] = 31;
DaysOfMonth[3] = 30;
DaysOfMonth[4] = 31;
DaysOfMonth[5] = 30;
DaysOfMonth[6] = 31;
DaysOfMonth[7] = 31;
DaysOfMonth[8] = 30;
DaysOfMonth[9] = 31;
DaysOfMonth[10] = 30;
DaysOfMonth[11] = 31;
(6)在Actions层的第3帧插入关键帧,在其动作面板中添加如下ActionScript:
stop();
MyNewDate = new Date(MyCurYear, MyCurMonth, 1);    //根据参数创建Date对象
MyNewYear = MyNewDate.getFullYear();
MyNewMonth = MyNewDate.getMonth();
displaymonth = MonthNames[MyNewMonth];       //根据Date对象设置显示的月份
displayyear = MyNewYear;                      //根据Date对象设置显示的年份
if (MyNewMonth == 1) {
 if ((MyNewYear%4 == 0) && (MyNewYear%100 != 0) || (MyNewYear%400 == 0)) {
  DaysOfMonth[1] = 29;
 } else {
  DaysOfMonth[1] = 28;
 }
}
MyDaysOfMonth = DaysOfMonth[MyNewDate.getMonth()];
MyDay = MyNewDate.getDay();
for (i=1; i<=Number(MyDaysOfMonth); i++) {    //显示当月的所有天数
 attachMovie("daynum", "daynum"+i, i);      //附加显示日期的影片剪辑
 _root["daynum"+i].num = i;                //修改影片剪辑内的动态文本
 if (i == 1) {                             //如果是每月的第1天
  if (MyDay == 0) {                   //星期日
   _root.daynum1._x = 50;           //_x坐标为50,位于SUN下面
  } else if (MyDay == 1) {
   _root.daynum1._x = 100;
  } else if (MyDay == 2) {
   _root.daynum1._x = 150;
  } else if (MyDay == 3) {
   _root.daynum1._x = 200;
  } else if (MyDay == 4) {
   _root.daynum1._x = 250;
  } else if (MyDay == 5) {
   _root.daynum1._x = 300;
  } else if (MyDay == 6) {
   _root.daynum1._x = 350;
  }
  _root.daynum1._y = 130;              //_y坐标为130
 } else {                                //如果不是第1天
  _root["daynum"+i]._x = _root["daynum"+(i-1)]._x+50;   //_x坐标增加50
  _root["daynum"+i]._y = _root["daynum"+(i-1)]._y;      //_y坐标不变
  if (_root["daynum"+i]._x>350) {             //_x坐标超出星期六
   _root["daynum"+i]._x = 50;            //回到星期日的位置
   _root["daynum"+i]._y += 40;           //_y坐标下移40
  }
  if (_root["daynum"+i]._y>290) {            //_y坐标超出下边界
   _root["daynum"+i]._y = 130;           //回到第一行显示
  }
 }
}
MyNewDate = new Date();                         //获取系统时间
colorday = MyNewDate.getDate();                   //获取要以白色显示的日期
if ((_root.displayyear == MyNewDate.getFullYear()) && (_root.displaymonth == MonthNames[MyNewDate.getMonth()])) {                //如果显示的月份为当前月份
 MyColor = new Color(_root["daynum"+colorday]);  //将当前日期设置成白色
 MyColor.setRGB(0xFFFFFF);
}
(7)为年份上翻查按钮的动作面板添加如下ActionScript:
on (release) {
 for (j=1; j<=31; j++) {
  removeMovieClip("daynum"+j);          //单击时删除显示的日期
 }
 MyCurYear--;                             //年份变量减1
 gotoAndPlay(2);                           //回到第2帧创建新的Date对象
}
(8)为年份下翻查按钮的动作面板添加如下ActionScript:
on (release) {
 for (j=1; j<=31; j++) {
  removeMovieClip("daynum"+j);          //单击时删除显示的日期
 }
 MyCurYear++;                            //年份变量加1
 gotoAndPlay(2);                           //回到第2帧创建新的Date对象
}
(9)为月份上翻查按钮的动作面板添加如下ActionScript:
on (release) {
 for (j=1; j<=31; j++) {
  removeMovieClip("daynum"+j);          //单击时删除显示的日期
 }
 MyCurMonth--;                           //月份变量减1
 if (MyCurMonth == -1) {
  MyCurMonth = 11;
  MyCurYear--;
 }
 gotoAndPlay(2);                          //回到第2帧创建新的Date对象
}
(10)为月份下翻查按钮的动作面板添加如下ActionScript:
on (release) {
 for (j=1; j<=31; j++) {
  removeMovieClip("daynum"+j);         //单击时删除显示的日期
 }
 MyCurMonth++;                         //月份变量加1
 if (MyCurMonth == 12) {
  MyCurMonth = 0;
  MyCurYear++;
 }
 gotoAndPlay(2);                          //回到第2帧创建新的Date对象
}
(11)为返回按钮的动作面板添加如下ActionScript:
on (release) {
 for (j=1; j<=31; j++) {
  removeMovieClip("daynum"+j);         //单击时删除显示的日期
 }
 gotoAndPlay(1);                          //回到第1帧获取系统时间
}
(12)按Ctrl+Enter测试影片,效果如图13-1所示。

[文章热度:]


上一页:AS菜鸟教程12 Color对象的应用

下一页:AS菜鸟教程14 声音对象的使用

最新话题

网站导航

搜索

网站公告


Copyright 2007 51as.com. Some Rights Reserved.
鄂ICP备07003189号

Powered by: KingCMS 5.0.1.0217