当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash as入门(19):日期和时间

ActionScript
FLASH AS3与网页JS参数值传递的问题
Flash AS3的parameters对象处理网页参数
Flash教程 认识Flash ActionScript的环境
Flash ActionScript编程基础
Flash AS3代码实现鼠标跟随喷枪涂鸦效果
falsh 跨域调用配置
Flash AS3.0 实例教程 喷泉动画特效
AS3 Loader与URLLoader的比较
ColorTransform类调整显示对象的颜色值
Flash AS3 快速制作烟雾动画
Flash AS3 制作文字飞出动画
ActionScript 学习小心得
ActionScript3.0读取网页FlashVars中的参数的问题
通过实例学习AS3.0:案例三
通过实例学习Flash AS3.0:案例四
通过实例学习Flash AS3.0:案例五
通过实例学习Flash AS3.0:案例六
Flash教程:认识Flash ActionScript的环境
Flash as入门(1):认识AS面板
Flash as入门(3):AS基本语法

ActionScript 中的 Flash as入门(19):日期和时间


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-01   浏览: 111 ::
收藏到网摘: n/a

日期与时间

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);