今天看啥
热点:

最佳答案

表盘怎么做我就不说了.
代码:
加到第一帧上即可 不要加到元件上 修改很麻烦
上面说的太复杂了.

stop();
function ClockFun(){
time1=new Date();
h1=time1.getHours();
m1=time1.getMinutes();
var hr,mr,sr:Number;
hr=time1.getHours()*30;
mr=time1.getMinutes()*6;
sr=time1.getSeconds()*6;
mr+=time1.getSeconds()/10
hr+=time1.getMinutes()/2
s1_mc._rotation=sr;
h1_mc._rotation=hr;
m1_mc._rotation=mr;
}
setInterval(ClockFun,1000);

含义:
stop();停在当前帧
function ClockFun()意思是定义一个变量 变量的名字叫做ClockFun

{ 大括号里的下面所有内容是这个变量要执行的内容
time1=new Date(); 赋值一个新的日期给time1
h1=time1.getHours();
m1=time1.getMinutes();这句和上句是提取系统时间
var hr,mr,sr:Number; 定义hr,mr,sr为数字类型
hr=time1.getHours()*30;
mr=time1.getMinutes()*6;
sr=time1.getSeconds()*6;
mr+=time1.getSeconds()/10
hr+=time1.getMinutes()/2 以上五句为 时针 分针 秒针的旋转度数

s1_mc._rotation=sr;
h1_mc._rotation=hr;
m1_mc._rotation=mr;把从hr,mr,sr得到的度数实施到s1_mc h1_mc m1_mc三个元件中 这三个元件是你自己做的 时针 分针 秒针
}
setInterval(ClockFun,1000);每隔1000毫秒执行一次上面的ClockFun函数 也就是说每秒执行一次 所以你看到的就是秒针每秒走一下了. 具体步骤
1、 运行Flash MX 2004,新建影片剪辑,命名为“表盘”。进入编辑区绘制一条直线,单击【窗口】|【设计面板】|【变形】命令,打开变形面板,添入旋转角度为30度,拷贝并应用变形。按照同样方法,绘制出其他分钟的刻度。
2、 在背景层中我们添加三个动态文本框,变量名称为:“weeks”,“days”和“timebox”。
3、 分别新建三个影片剪辑,命名为“时针”,“分针”,“秒针”。绘制三个指针的形状。注意指针的中心点的位置。
4、 导入一段指针移动的模拟音乐。在声音文件的连接属性中选择“为动作脚本导出”,命名为“sound”。
5、 新建一个影片剪辑,命名为“音乐”。在第1帧添加as:stop(); 第2帧插入空白关键帧,添加as:
ss = new Sound();
ss.attachSound("sound");
ss.start();
ss.onSoundComplete = function() {
ss.start();
}; //调用库中的声音文件sound
6、返回到场景1,把“表盘”影片剪辑拖放到舞台中,利用对齐面板使之处与舞台中央位置。
7、新建一个图层,绘制一个中心点。同样利用对齐面板使之处与中央位置。
8、新建三个图层,分别放置“时针”,“分针”,“秒针”影片剪辑。注意,影片剪辑的中心点要与步骤6绘制的中心点重合。

1、 新建一个音乐层,把“音乐”影片剪辑放置在场景的任何位置。在下面的属性面板中,命名为“777”。

2、 分别选择“时针”,“分针”,“秒针”三个影片剪辑,在下面的属性面板中分别命名为“hourpoints”,“minutepoints”和“secondpoints”。

3、 好了,准备工作已经完成了。下面我们添加AS。

4、 选中“表盘”影片剪辑,添加as语句:

onClipEvent (load) {
weekArray = new Array(’星期日’, ’星期一’, ’星期二’, ’星期三’, ’星期四’, ’星期五’, ’星期六’);//建立一个数组,共七个元素
timedate = new Date();//建立一个新的时间对象
}
onClipEvent (enterFrame) {
week = timedate.getDay();//返加0~6,0时取“星期日”;1时取“星期一”…….
weekday = weekArray[week];//从数组中读取中文显示,参看上一句的解释
day = timedate.getDate();//当前的日期,返回值为1~31
hour = timedate.getHours();//当前的时,返回0~23
minute = timedate.getMinutes();当前的分,返回0~59
second = timedate.getSeconds();当前的秒,返回0~59
if (hour<10) {
hour = "0" + hour;//如果时小于10,前面显示加“0”
}
if (minute<10) {
minute = "0" + minute;//同上
}
if (second<10) {
second = "0" + second;//同上
}
timebox = hour+" : "+minute+" : "+second;//显示在动态文本框中
weeks = weekday;//同上一句
days = day;//同上一句
delete timedate;//删除时间对象,目的是实时显示时间
timedate = new Date();//新建时间对象
}

5、 选择“时针”影片剪辑,添加as语句:

onClipEvent (enterFrame) {
hourangle = _root.clock.hour*30+_root.clock.minute/2;
//把钟表符号中的时针对应的角度值赋值给变量“hourangle”
setProperty ("_root.hourpoints", _rotation, hourangle);
}//设置分针的旋转角度

6、 选择“分针”影片剪辑,添加as语句:

onClipEvent (enterFrame) {
minuteangle = _root.clock.minute*6;
//把钟表符号中的分针对应的角度值赋值给变量“minuteangle”
setProperty ("_root.minutepoints", _rotation, minuteangle);
}//设置分针的旋转角度

7、 选择“秒针”影片剪辑,添加as语句:

onClipEvent (enterFrame) {
secondsangle = _root.clock.second*6;
//把钟表符号中的秒针对应的角度值赋值给变量“secondsangle”
setProperty ("_root.secondpoints", _rotation, secondsangle);
}//设置秒针的旋转角度

16、测试,保存。请参看源文件“时钟”。

特别说明
要实现指针式双历钟表,要掌握的知识包括:FLASH的日期型函数和变量的使用,文本框的设置,时间显示的调整,数组的简单应用,以及如何实时的、动态的显示时间;最主要的是利用指针的角度与当前时间的函数关系,才能使时钟准确的指示时间。从中可以看出,如果推理不出这个函数关系,就做不成。所以我们应该多学习一下,多练练自己的逻辑思维能力
参考网址 http://www.pcxue.com/html/200620060606/44560.shtml 第一帧代码:date=new Date()
第二帧代码:miao._rotation = date.getSeconds()*6;
fen._rotation = date.getMinutes()*6;
shi._rotation = date.getHours()*30;
miao,fen,shi分别为影片剪辑!如果需要可以发个例子给你参考!

回答者:

www.bkjia.comtruehttp://www.bkjia.com/shuma/shuma94067.htmlTechArticle最佳答案 表盘怎么做我就不说了. 代码: 加到第一帧上即可 不要加到元件上 修改很麻烦 上面说的太复杂了. stop(); function ClockFun(){ time1=n...

相关文章

    暂无相关文章
相关搜索:
相关频道:

帮客评论

视觉看点