|
在读完这篇文章后,你就可以做自己的时钟了。首先,我们会制作简单的数字时钟来显示小时和分钟,接着我们会使我们的项目更复杂。你应该明白ActionScript的基础知识!
另外:变量是英文的1但我会解释所有的变量。
笔者是在Flash Professional 8上做的,不过我想,Flash 5应该就可以做了。
开始行动吧!
1. 创建一个新文件
2. 创建一个动态文本并且设置其变量为timetext
3. 选择动态文本,然后把它转换为影片剪辑(右键单击它然后选择转换为元件/影片剪辑或者按F8然后选择影片剪辑)
4. 选择影片剪辑,打开动作面板,把下面的代码粘到里面:
onClipEvent (enterFrame) { time = new Date(); hour = time.getHours(); minute = time.getMinutes(); second = time.getSeconds(); timetext= hour +" : "+ minute +" : "+ second; }
第一行代码onClipEvent: 触发为特定影片剪辑实例定义的动作,enterFrame: 以影片剪辑的帧频连续触发该动作。第2行告诉电脑创建一个日期对象,在它中包含我们需要的时间变量。
第3行到第5行分别把系统当前的时钟值赋给变量hour,把系统当前的分钟值赋给变量minute,把系统当前的秒种值赋给变量second。
第6行用来在把时间从界面中显示出来。
5. 保存文件并测试你的影片。如果没有正常运行,下载例子文件并分析自己所有的工作;
6. 但是这儿它有一个小的bug。如果时间为23:05,时钟会显示为23:5。这样看起来不怎么美观。如果你想修正它,那么你还得再粘贴几行代码。
if (hour <10) { hour = "0"+ hour; } if (minute <10) { minute = "0"+ minute; } if (second <10) { second = "0"+ second; }
上面代码的意思是如果时钟,分钟或秒钟小于10,则在对应得数字前面加'0'。
上面的结果你可能还不满意,那好,让我们现在再加入年、月、日和毫秒。
1.编辑影片剪辑, 再加入一个动态文本并设置其变量为datetext;
2.把影片剪辑中的代码全部删除然后粘贴下面的代码:
onClipEvent (enterFrame) { time = new Date(); hour = time.getHours(); minute = time.getMinutes(); second = time.getSeconds(); milisecond=time.getMilliseconds(); year = time.getFullYear();//得到系统年份 month = time.getMonth()+1;// 得到系统月份 date=time.getDate();//得到系统日期 day= time.getDay(); file://得到系统礼拜 if (hour <10) { hour = "0"+ hour; } if (minute <10) { minute = "0"+ minute; } if (second <10) { second = "0"+ second; } if (milisecond <10) { milisecond = "0"+ milisecond; } file://把礼拜显示为中文 switch (day) { case 0 : day = "星期日"; break; case 1 : day = "星期一"; break; case 2 : day = "星期二"; break; case 3 : day = "星期三"; break; case 4 : day = "星期四"; break; case 5 : day = "星期五"; break; case 6 : day = "星期六"; break; } datetext= year+"年"+month+"月"+date+"日 "+ day; timetext= hour +" : "+ minute +" : "+ second+" : "+ milisecond;
}
3. 保存,测试。正常工作了吧^^!
4. 改变时间或日期的显示方式,编辑最后的3行代码:
timetext= hour +" hrs "+ second +" secs "+ minute +" mins "+ milisecond;
如果时间为20:15:30,你的时钟会显示为:20hrs 30secs 15mins
可能的变化是无穷的!
5.为防止以外,保存你的工作然后测试(文件/发布预览/flash)
6.如果它正常工作,那么你已经成功完成你的专业时钟了!!!
给最懒的人:添加两个动态文本在flash中,分别设置其变量为datetext,timetext。 添加一个新图层,在第一帧的动作面板中粘贴如下代码:
time = new Date(); hour = time.getHours(); minute = time.getMinutes(); second = time.getSeconds(); milisecond=time.getMilliseconds(); year = time.getFullYear();//得到系统年份 month = time.getMonth()+1;// 得到系统月份 date=time.getDate();//得到系统日期 day= time.getDay(); file://得到系统礼拜 if (hour <10) { hour = "0"+ hour; } if (minute <10) { minute = "0"+ minute; } if (second <10) { second = "0"+ second; } if (milisecond <10) { milisecond = "0"+ milisecond; } file://把礼拜显示为中文 switch (day) { case 0 : day = "星期日"; break; case 1 : day = "星期一"; break; case 2 : day = "星期二"; break; case 3 : day = "星期三"; break; case 4 : day = "星期四"; break; case 5 : day = "星期五"; break; case 6 : day = "星期六"; break; } datetext= year+"年"+month+"月"+date+"日 "+ day; timetext= hour +" : "+ minute +" : "+ second+" : "+ milisecond;
|