Flash:打造你自己的专业时钟
另外:变量是英文的1但我会解释所有的变量。
笔者是在Flash Professional 8上做的,不过我想,Flash 5应该就可以做了。
开始行动吧!
1. 创建一个新文件
2. 创建一个动态文本并且设置其变量为timetext
3. 选择动态文本,然后把它转换为影片剪辑(右键单击它然后选择转换为元件/影片剪辑或者按F8然后选择影片剪辑)
4. 选择影片剪辑,打开动作面板,把下面的代码粘到里面:
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。这样看起来不怎么美观。如果你想修正它,那么你还得再粘贴几行代码。
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行代码:
如果时间为20:15:30,你的时钟会显示为:20hrs 30secs 15mins
可能的变化是无穷的!
5.为防止以外,保存你的工作然后测试(文件/发布预览/flash)
6.如果它正常工作,那么你已经成功完成你的专业时钟了!!!
给最懒的人:添加两个动态文本在flash中,分别设置其变量为datetext,timetext。 添加一个新图层,在第一帧的动作面板中粘贴如下代码:
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;