谁会移动时钟的(Flash)代码(一般的时钟是以秒跳动的,我要的不是秒跳动的时钟代码。而是移动的那种)

谁会移动时钟的(Flash)代码(一般的时钟是以秒跳动的,我要的不是秒跳动的时钟代码。而是移动的那种),第1张

要想制作双历指针式钟表,就要先制作电子表,利用系统函数获得当前的时间和日期,利用动态文本框显示变量值。然后分析秒针、分针、和时针的旋转角度与时间的关系,通过这个数学模型,我们就能做出双历指针式钟表。 具体步骤 1、 运行Flash MX 2004,新建影片剪辑,命名为“表盘”。进入编辑区绘制一条直线,单击窗口|设计面板|变形命令,打开变形面板,添入旋转角度为30度,拷贝并应用变形。按照同样方法,绘制出其他分钟的刻度。如图3391所示。 2、 在背景层中我们添加三个动态文本框,变量名称为:“weeks”,“days”和“timebox”。如图3392所示。 3、 分别新建三个影片剪辑,命名为“时针”,“分针”,“秒针”。绘制三个指针的形状。注意指针的中心点的位置。如图3393所示。 4、 导入一段指针移动的模拟音乐。在声音文件的连接属性中选择“为动作脚本导出”,命名为“sound”。 5、 新建一个影片剪辑,命名为“音乐”。在第1帧添加as:stop(); 第2帧插入空白关键帧,添加as: ss = new Sound(); ssattachSound("sound"); ssstart(); ssonSoundComplete = function() { ssstart(); }; //调用库中的声音文件sound 6、返回到场景1,把“表盘”影片剪辑拖放到舞台中,利用对齐面板使之处与舞台中央位置。 7、新建一个图层,绘制一个中心点。同样利用对齐面板使之处与中央位置。 8、新建三个图层,分别放置“时针”,“分针”,“秒针”影片剪辑。注意,影片剪辑的中心点要与步骤6绘制的中心点重合。如图3394所示。 9、 新建一个音乐层,把“音乐”影片剪辑放置在场景的任何位置。在下面的属性面板中,命名为“777”。 10、 分别选择“时针”,“分针”,“秒针”三个影片剪辑,在下面的属性面板中分别命名为“hourpoints”,“minutepoints”和“secondpoints”。 11、 好了,准备工作已经完成了。下面我们添加AS。 12、 选中“表盘”影片剪辑,添加as语句: onClipEvent (load) { weekArray = new Array(’星期日’, ’星期一’, ’星期二’, ’星期三’, ’星期四’, ’星期五’, ’星期六’);//建立一个数组,共七个元素 timedate = new Date();//建立一个新的时间对象 } onClipEvent (enterFrame) { week = timedategetDay();//返加0~6,0时取“星期日”;1时取“星期一”…… weekday = weekArray[week];//从数组中读取中文显示,参看上一句的解释 day = timedategetDate();//当前的日期,返回值为1~31 hour = timedategetHours();//当前的时,返回0~23 minute = timedategetMinutes();当前的分,返回0~59 second = timedategetSeconds();当前的秒,返回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();//新建时间对象 } 13、 选择“时针”影片剪辑,添加as语句: onClipEvent (enterFrame) { hourangle = _rootclockhour30+_rootclockminute/2; //把钟表符号中的时针对应的角度值赋值给变量“hourangle” setProperty ("_roothourpoints", _rotation, hourangle); }//设置分针的旋转角度 14、 选择“分针”影片剪辑,添加as语句: onClipEvent (enterFrame) { minuteangle = _rootclockminute6; //把钟表符号中的分针对应的角度值赋值给变量“minuteangle” setProperty ("_rootminutepoints", _rotation, minuteangle); }//设置分针的旋转角度 15、 选择“秒针”影片剪辑,添加as语句: onClipEvent (enterFrame) { secondsangle = _rootclocksecond6; //把钟表符号中的秒针对应的角度值赋值给变量“secondsangle” setProperty ("_rootsecondpoints", _rotation, secondsangle); }//设置秒针的旋转角度 16、测试,保存。请参看源文件“时钟”。 特别说明 要实现指针式双历钟表,要掌握的知识包括:FLASH的日期型函数和变量的使用,文本框的设置,时间显示的调整,数组的简单应用,以及如何实时的、动态的显示时间;最主要的是利用指针的角度与当前时间的函数关系,才能使时钟准确的指示时间。从中可以看出,如果推理不出这个函数关系,就做不成。所以我们应该多学习一下,多练练自己的逻辑思维能力

参考资料:

>

针不动可以由很多原因造成,可能是new Date();没有刷新,造成Date里数字不变,针的角度也不改变,还可能是其他动作没有写正确。具体得根据源程序来分析。

下面写一个简单的指针钟表程序仅供参考:

首先先把原件准备好,在舞台上画三个指针分别命名为"shi" "fen" "miao",(注意调整旋转点)放到舞台后,在主时间轴内写以下代码:

_rootonEnterFrame=settime;//每帧执行函数

function settime(){

var myDate=new Date();//重新清空Date函数(这里不重新初始会造成指针不旋转)

_second=myDategetSeconds()6;//获得当前秒数,每一秒增加6度

_minute=myDategetMinutes()6;//获得当前分数,每一分增加6度

_hour=myDategetHours()30;//获得当前小时数,每一小时增加30度

_rootmiao_rotation=_second;//将指针度数赋予每个指针

_rootfen_rotation=_minute;

_rootshi_rotation=_hour

}

如果还是不正确的话,可把源文件发到twoks@126com,在具体研究

将鼠标定义在时间线的第一桢上,我们要对它添加Action,做一些初始化工作。

time = new Date(); //获取系统日期

hours = timegetHours(); //获取系统小时数(24小时制,0-23)

minutes = timegetMinutes(); //获取系统分钟数

seconds = timegetSeconds(); //获取系统秒数

if (hours>12) { //假如系统时间大于12,系统时间可能是用24小时表示的

hours = hours-12; //系统时间数减去12赋予hours变量,因为我们的钟是12小时的

}

if (hours<1) { //假如系统时间小于1

hours = 12; //则hours变量为12,因为钟上没有0点的说法

}

hours = hours30+int(minutes/2); hours变量=前面给的小时数+分钟数/2 ,这里是在计算时针应该旋转的角度

minutes = minutes6+int(seconds/10); // minutes变量=前面给的分钟数+秒数/10 ,这里是在计算分针应该旋转的角度

seconds = seconds6; //seccondes变量=前面获得的秒数×6,因为钟有360度

接着,对时针进行添加如下Action(讲鼠标定位于时针上):

onClipEvent (enterFrame) {

setProperty (this, _rotation, _roothours); //当该Movie Clip开始工作时,设置当前对象(当然是这个指针了)的角度为根目录下hours变量的值。

}

同样对分针和秒针分别添加如下Action:

onClipEvent (enterFrame) {

setProperty (this, _rotation, _rootminutes);

}

onClipEvent (enterFrame) {

setProperty (this, _rotation, _rootseconds);

}

这有两个原因:

1、你在输入flash名称时,输入了中文名称,你将flash文件名改为用字母或数字,但还要确保flash文件和ppt在同一个文件夹内。

2、你的flash文件和你的ppt没有在一个文件夹内,或者复制剪切的过程将flash丢失了。

时针:onClipEvent(enterFrame)//当进入时针这个影片剪辑的帧时{

timeNow=new Date(); //定义一个叫timeNow的时间对象

this_rotation=(timeNowgetHours()%12+timeNowgetMinutes()/60)30;

//时针这个影片剪辑旋转的角度=(当前系统时间整除12+当前分钟数除以60)30度

以下:分钟和秒钟如同,

百分号是整除的意思。

以上就是关于谁会移动时钟的(Flash)代码(一般的时钟是以秒跳动的,我要的不是秒跳动的时钟代码。而是移动的那种)全部的内容,包括:谁会移动时钟的(Flash)代码(一般的时钟是以秒跳动的,我要的不是秒跳动的时钟代码。而是移动的那种)、关于Flash as3.0 求制作一个数字时钟的代码、做的FLASH钟,加载了脚本,但分,秒,时针不动,哪位高手可以帮忙改下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9786413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存