[推荐]转自太平洋电脑城,时钟教程
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个大格。具体上面的算法有兴趣的朋友可以自己研究一下。
最后完整的脚本如下图: