首 页 | 网页模板 | 教程 | 源码下载 | 书籍下载 | 图片素材 | 字体 | JAVA特效 | FLASH源码 | 软件 | 矢量 | 论坛 | 其它 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 |
当前在线
广告:P4服务器电信机房6999/年即送产权 | 疾风下载
看看我做的表,准不准
2004-8-11 6:16:00  作者:  来源:未知 网友评论 0 条 论坛
  

要想制作双历指针式钟表,就要先制作电子表,利用系统函数获得当前的时间和日期,利用动态文本框显示变量值。然后分析秒针、分针、和时针的旋转角度与时间的关系,通过这个数学模型,我们就能做出双历指针式钟表。
发上来之前我又加了个声音,请参考源码,下面的讲解没说加声音的方法,先看看效果:
点击开新窗口欣赏该FLASH动画![全屏欣赏]

第一步:我们来制作一个钟表动画剪辑符号,实例名为:“clock”;在此符号的编辑环境中,分五层,主要就是钟表的模样,这里不做详细讲解,自行参考源码。给出文本框的变量:表盘下方的显示时间框的变量为“timebox”,表盘上的左边的变量为“weeks”,右边的变量为“days”。刻度的制作需要一定的技巧:先过圆心画一条垂直直线,在Transform面板中的旋转项中填入6,按复制按钮复制29次,利用表盘(不同色的圆)来切割刚才的直线组,将圆外的线头删掉,将圆缩小95%,把圆内的线段删掉,得到了秒针的刻度。别的刻度的制作方法类同。
第二步:在钟表实例上捆绑如下代码:(后面有逐行的解释)
onClipEvent   (load)   {
            weekArray   =   new   Array(''星期日'',   ''星期一'',   ''星期二'',   ''星期三'',   ''星期四'',   ''星期五'',   ''星期六'');
            timedate   =   new   Date();
}
onClipEvent   (enterFrame)   {
            week   =   timedate.getDay();
            weekday   =   weekArray[week];
            day   =   timedate.getDate();
            hour   =   timedate.getHours();
            minute   =   timedate.getMinutes();
            second   =   timedate.getSeconds();
            if   (hour<10)   {
                        hour   =   "0"   +   hour;
            }
            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();
}
//————————
下面是逐行的解释:
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();//新建时间对象
}
第三步:制作时针、分针和秒针,转换为动画剪辑符号,分别起实例名:“hourpoints”;
“minutepoints”;“secondpoints”。放在三个新层中,再新建一层,在表盘中心画一个红心,使表针绕着红心转。
在加代码之前,我们先来分析一下表针和时间的关系:秒针转一圈共走60次,因此每走一次转过的角度为6;设当前的秒数为sencond,则角度Angle与sencond的关系为:
Angle=sencond*6
分针与此类似:Angle=   minute   *6
时针转动一圈共有12格,因此整点的角度间隔为30度,可得出:Angle=hour*30;但是时针并不是仅在整点才走,而是随着分针的变化在缓缓前进,所以要将当前分钟数对时针的影响考虑进来:用白话来说,如果分钟为60,则时针肯定是转过1*30=30度;如果分钟为30,则时针应该转过30/2得到15度;如果分钟为120,则时针肯定是转过2*30=60度;如果分钟为150,则时针应该转过2*30+30/2=75度。所以得出结论:Angle=hour*30+   minute/2。
第四步:首先给秒针实例加如下代码:
onClipEvent   (enterFrame)   {
            secondsangle   =   _root.clock.second*6;
//把钟表符号中的秒针对应的角度值赋值给变量“secondsangle”
            setProperty   ("_root.secondpoints",   _rotation,   secondsangle);
}//设置秒针的旋转角度
//————————
而后给分针实例加如下代码:
onClipEvent   (enterFrame)   {
            minuteangle   =   _root.clock.minute*6;   
//把钟表符号中的分针对应的角度值赋值给变量“minuteangle”
            setProperty   ("_root.minutepoints",   _rotation,   minuteangle);
}//设置分针的旋转角度
//————————
最后给时针实例加如下代码:
onClipEvent   (enterFrame)   {
            hourangle   =   _root.clock.hour*30+_root.clock.minute/2;
//把钟表符号中的时针对应的角度值赋值给变量“hourangle”
            setProperty   ("_root.hourpoints",   _rotation,   hourangle);
}//设置分针的旋转角度
第五步:总结:要实现指针式双历钟表,要掌握的知识包括:FLASH的日期型函数和变量的使用,文本框的设置,时间显示的调整,数组的简单应用,以及如何实时的、动态的显示时间;最主要的是利用指针的角度与当前时间的函数关系,才能使时钟准确的指示时间。从中可以看出,如果推理不出这个函数关系,就做不成。所以我们应该多学习一下,多练练自己的逻辑思维能力。
想要源码在这:
点击浏览该文件

>> 相关文章
·看看我做的表,准不准

关于网站 | 客服中心 | 服务条款 | 友情链接 | 广告联系 | 本站历程 | 网站导航

吉ICP备05000107号