FLASH MX中内置的Date函数为我们提供了获取或修改日期及时间的功能。(注:获取的时间是本地电脑的系统时间和日期)下面列出一些基本命令及解释。
一、日期时间的基本命令及解释
getFullYear()按照本地时间返回 4 位数字的年份数。
getMonth()按照本地时间返回月份数。
getDate()按照本地时间返回某天是当月的第几天。
getHours()按照本地时间返回小时值。
getMinutes()按照本地时间返回分钟值。
getSeconds()按照本地时间返回秒数。
以上命令并不是很难理解,都是获取本地机器上日期及时间。但是要使用这些命令,我们必须先用Date 对象的构造函数创建一个 Date 对象的实例。然后,就可以用创建的这个实例来进行操作!命令格式如下:
实例名=new Date()
二、显示日期及做一个走动的表
下面我们通过一个例子来介绍Date对象的各种命令使用方法。(源文件下载)
最终效果如下:
步骤:
1、新建立一flash文档,将层1改名为:文字显示,并在舞台下方绘制出一个动态文本框,起一个变量名:mytime 如下图:
2、新建立一个层,并把这个新建立的层起名为:表盘,然后使用绘图工具在舞台上绘制出一个不带分针、时针和秒针的表盘。如下图:
3、现在来绘制指针。按Ctrl+F8新建立一个影片剪辑,起名为:指针,选择绘图工具,在里面垂直绘制出一条细线做为指针。注意:将线条的下方与影片剪辑的中心点对齐!如下图
4、返回主舞台,新建一个层,改名为:指针—秒将刚才制作的指针拖放在表盘的中间,注意要把指针的中心点与表盘的中心点对齐。之后,为这个指针实例起一个名字为:sec我们先做秒针。如下图:
5、同理,再新建一个层,并起名字为:指针—分将库里的“指针”元件再拖放出来,并改变这个实例的长度和颜色,让它做为分针。实例名起为:min如下图:
6、现在按照上面的方法来制作时针,新建一个层,改名为:指针-时将指针元件拖放在舞台中,与表盘中心对齐,并把这个实例起名为:hour 如下图:
7、呵呵,现在咱们开始编写程序了,为了观察方便,我们再新建一个层,改名为AS,选中AS层的第一桢,打开动作面板,开始编写脚本,首先,我们要让舞台上的动态文本框显示日期及时间。
_root.onEnterFrame = function() {//需要让影片不停执行下面脚本。
mydate = new Date();//首先构建一个名字叫mydate的日期对象,因为以后我们就要用mydate这个实例来控制了。
myear = mydate.getFullYear();//获取本地机器上的年份,并放在myear变量中。
mmon = mydate.getMonth()+1;//获取本地机器上的月份,并放在mmon变量中。因为获取的值是0 代表一月,1 代表二月,依此类推,所以要加上1才正确
mdate = mydate.getDate();//获取本地机器上的本月的第几天,并放在mdate变量中。
mou = mydate.getHours();//获取本地机器上的小时数值,放在mou变量中,这个命令能获取0--23之间的数值。
mm = mydate.getMinutes();//获取本地机器上的分钟数值,并放在mm变量中。
ms = mydate.getSeconds();//获取本地机器上的秒数值,放在ms变量中。
mytime = myear+"年"+mmon+"月"+mdate+"日 "+mou+":"+mm+":"+ms; //让舞台上变量名为mytime的动态文本框显示日期及时间。
}
现在可以测试一下了,可以发现舞台上文本框会显示出日期及时间,那么还有表里面的秒、分、时针怎么跟时间对应起来呢?现在我们加入如下一些脚本:(放在mytie=....那一行下面)
sec._rotation = 6*ms;//利用flash中对象旋转命令来实现指针的走动。_rotation旋转一周是360度,所以,秒针每走一下,就等于走了6度,所以用一个算法来获取每秒的度数6*ms
min._rotation = 6*mm;//同理,让分针也是根据获取的分钟数值乘以6来进行度的旋转。
hour._rotation = mou*30+mm/60*30;//小时的走动,算法稍微复杂一点,因为时针走一圈是12个大格。具体上面的算法有兴趣的朋友可以自己研究一下。
最后完整的脚本如下图:
结束语:日期及时间的AS编写并不复杂,这里我只简单的讲解了获取日期及时间。,当然了,我们还可以进行日期及时间的修改设置,使用的命令及方法与获取类似,有兴趣的朋友可以参看一些flash脚本参考书。希望大家能通过这个简单的例子掌握基本的日期及时间AS的编写。