日期与时间 <电子钟和倒计时牌的的做法>

来源:互联网 发布:软件需求说明书 简洁 编辑:程序博客网 时间:2024/04/27 14:43
 

日期与时间

Date类提供了对日期和时间的操作方法,在这一节中还将介绍另一个类Timer,它提供了对时间间隔的操作。

要使用Date类首先要创建一个Date类实例:
var now:Date = new Date();

创建了Date实例后,就可以调用Date的方法,来获取当前时间。
getDate()方法:将返回当前的号数,返回值是1-31之间。
getDay()方法:返回当前是星期几,0-6,0代表星期日。
getFullYear()方法:返回当前年份,4位数。
getHours()方法:返回当前是几点,0-23。
getMinutes()方法:返回当前是分钟数,0-59。
getMonth()方法:返回前的月份数,0-11。请注意这里是0-11,即0代表1月。那么当前的月份应该是: getMonth() +1.
getSeconds()方法:返回当前的秒数,0-59。
getTime()方法:返回当前时间自通用时间1970年1月1日午夜以来的毫秒数。这个方法常被用来比较两个日期间的距离。比如倒计时牌。

Date类还有很多方法,将上面的方法中的get换为set即把某个时间设置给一个Date对象。

有了上面的方法后,就可以来做一个练习了,首先来做一个显示当前日期的练习:


 

这个练习由两个部分组成:一个是一个电子钟,一个是显示当前时间的文本牌。

1. 首先是做背景,这个按你个人喜好。
2. 做表盘,新建一MC,画一个正园,将正园居中对齐。用直线工具在12点位置画一条很短的直线(分钟线),用变形工具将直线的注册点调到十字处。打开变形成面板,在旋转处输入6,然后点下面的旋转并复制按钮,复制59分,这样分钟线就画好了。然后用选择工具将时钟线拉长一些,将12点,3点,6点,9点标出来。这样表盘就做好了。
3. 做表针,建三个MC分别画时针,分针和秒针,每个针均指向12点,针的下端与十字对齐,水来居中。
4. 回到主场景,新建一层,将表盘拖到舞台上放好。
5. 新建一层,将秒针,分针,时针拖入,将针底端与表盘中心对齐。画一个画色的小园(按对象绘绘制)放要针的尾部,再在黄色的园上放一个放射填充的园。
6. 打开属性面板,为表针指定实例名:时针-sz_mc,分针:fz_mc,秒针:mz_mc.
7. 按上面效果,在舞台下半部放7个动态文本框,实例名称分别为:年:y_txt,月:m_txt,日:d_txt,星期:w_txt,时:h_txt,分:min_txt,秒:s_txt.
8.新建一层,命名为:action,打开帧动作面板,输入:

var xq:Array = new Array("日","一","二","三","四","五","六"); function nowtime(){ var now:Date = new Date(); year = now.getFullYear(); mon = now.getMonth(); day = now.getDate(); week =now.getDay(); hour = now.getHours(); minu = now.getMinutes(); second = now.getSeconds(); y_txt.text = year; m_txt.text = mon+1; d_txt.text = day; w_txt.text=xq[week]; h_txt.text=hour; min_txt.text= minu; s_txt.text = second; if(hour>12){ hour=hour-12; } sz_mc._rotation = hour*30+minu/2; fz_mc._rotation= minu*6+second/10; mz_mc._rotation = second*6; } var nowtimeid = setInterval(nowtime,1000); sdnr_mc.setMask(zz_mc);


 

下面做第二个练习:倒计时牌

倒计时牌需要4个动态文本,实例名称为:天:tan_txt,小时:xs_txt,分钟:fz_txt,秒钟:mz_txt

代码:

function djs(){ var now:Date = new Date(); var yd:Date = new Date(2009,0,1); var nows = now.getTime(); var yds = yd.getTime(); var sc = yds - nows; var tan = Math.floor(sc/(1000*60*60*24)); var tys = sc%(1000*60*60*24); var xs = Math.floor (tys/(1000*60*60)); var sys = tys%(1000*60*60); var fz = Math.floor(sys/(1000*60)); var fys = sys%(1000*60); var mz = Math.floor(fys/1000); tan_txt.text = tan; xs_txt.text = xs; fz_txt.text=fz; mz_txt.text =mz; } var djsid = setInterval(djs,1000);

在上面两个练习中,都用到了setInterval()函数,这是本节要介绍的第二部分内容。
setInterval():函数
该函数可实现每隔多少毫秒调用一次某函数。
用法: var 一个变量名称 = setInterval(要调用的函数名称,间隔的毫秒数);
例: var i = 0;
function dy(){
i++;
trace(i);
}
var dyid = setInterval(dy,1000);
测试影片,每隔1秒钟,将输出1次,从1开始,每次输出增加1。
如果我们要停止setInterval()函数,不让它再调用函数,可用:clearInterval()函数。
用法:clearInterval(存储有setInterval函数的变量名称)
例将上例的代码改为:
var i = 0;
function dy(){
i++;
trace(i);
if (i>10){
clearInterval(dyid);
}
var dyid = setInterval(dy,1000);
测试影片,当输出10次后,不再继续输出了。
还有另一个函数:
setTimeout()函数:
这个函数是在隔多少毫秒后,调用某函数。与setInterval函数不同的是它只调用一次,然后自动删除,而不是反复调用。用法与setInterval函数一样。
例:将代码改为:
var i = 0;
function dy(){
i++;
trace(i);
}
var dyid = setTimeout (dy,1000);
测试影片,在1秒后将输出1,然后不再输出了。
如果要阻止setTimeout调用函数可用:
clearTimeout()
用法clearTimeout(存储有setTimeout函数的变量);
例:clearTimeout(dyid);

 

 本文转自 http://webdesign.chinaitlab.com/flashjc/779366.html

 

 

 

 

原创粉丝点击