smilewei84 发表于 2009-2-19 08:27:18

Flash制作电子日历时钟(2)

  4.接着创建一个"文本"层,用来放置几个动态文本,如图7-5所示。   
www.ad119.cn/bbs/attachments/websoft/20090219/2009219827065677801.jpg
图 5  在"文本"层中绘制5个动态文本,如图7-6所示。然后分别为其申明变量名:yeahtext、daytext、weektext、half、timetext。
www.ad119.cn/bbs/attachments/websoft/20090219/2009219827068777802.jpg
图 6  5.设置好动态文本后。再创建一个"脚本"层,用来放置代码。如图7-5所示。右键单击该层的第1帧,在弹出的菜单中选择"动作"命令,或按F9键打开"动作"面板。然后键入以下代码。代码的作用是让动态文本能够显示系统当前的时间,日期,年份等。

  // 创建新的日期对象,然后调用其方法和属性
  time = new Date();
  // 把系统当前的时钟值赋给变量hour
  // 把系统当前的分钟值赋给变量minute
  // 把系统当前的秒种值赋给变量second
  hour = time.getHours();
  minute = time.getMinutes();
  second = time.getSeconds();
  milli = int(time.getMilliseconds()/10);
  // 如果分钟值小于10,就在其前面加一个字符"0",这样设计才符合常理
  if (minute < 10) {
    minute = "0" minute;
  }
  // 如果秒钟值小于10,就在其前面加一个字符"0"
  if (second<10) {
    second = "0" second;
  }
  // 如果毫秒值小于10,就在其前面加一个字符"0"
  if (milli<10) {
    milli = "0" milli;
  }
  // 如果时钟值小于12,则在half文本里显示字符串"上午",否则显示为下午
  if (hour<12) {
    half = "上午";
  } else {
    half = "下午";
  }
  // 在yeahtext文本里显示系统年份
  yeahtext = time.getFullYear();
  // 在 daytext文本里显示系统前日期
  daytext = time.getMonth() 1 " 月 " time.getDate() " 日";
  // 在weektext文本里显示系统星期
  weektext = "星期 " time.getDay();
  // 在timetext文本里显示系统时间
  timetext = hour   ":"   minute   ":"   second   milli;

  6.最后一步。按住Shift键,同时又鼠标左键点击选中是个层,使其显示为阴影,然后按F5键为三个层同时插入一帧。
www.ad119.cn/bbs/attachments/websoft/20090219/2009219827073477803.jpg
图 7  好了。现在按快捷键Ctrl Enter来测试一下效果。其实利用实例中的代码,结合电影属性和一些设计的技巧,可以设计出形形色色的时间效果。譬如什么电子表、手表、闹钟,年历;或是控制动画跟随时间变化;或是用在各种广告、贺卡和MTV的效果中。在游戏中Date对象就显得更加重要了,它可以用来设计纪录游戏时间的计时器,或是控制游戏的进程。

  另外还要强调一点:Date对象中UTC时间格式是在方法中加上字符UTC,例如getUTCHours(),它能输出现在的UTC时间。如果将格林尼治时间加上不同时区的时间差就可以得到当地时间了。读者朋友也可以自己试着做一个格林尼治时区表。
fla

源文

件下载
页: [1]
查看完整版本: Flash制作电子日历时钟(2)