FLASH怎么做时钟?

FLASH怎么做时钟?,第1张

很简单,打开flash软件,新建一文档,在第一桢打开动作面板,输入以下脚本代码。测试OK //画钟表边线 this.createEmptyMovieClip("bianxian_mc", 1) with (bianxian_mc) { lineStyle(2, 0xCCCCCC) moveTo(Math.cos(0*Math.PI/180)*96, Math.sin(0*Math.PI/180)*96) for (var i = 360i>=0i--) { lineTo(Math.cos(i*Math.PI/180)*96, Math.sin(i*Math.PI/180)*96) } _x = 100 _y = 100 } //创建时间动态文本 this.createTextField("my_txt", 2, 0, 0, 0, 0) with (my_txt) { autoSize = true textColor = 0x555555 _x = 70 _y = 60 } //画12个表格 this.createEmptyMovieClip("biaoge_mc", 3) with (biaoge_mc) { lineStyle(2, 0xCCCCCC) moveTo(0, -96) lineTo(0, -92) _x = 100 _y = 100 } for (i=1i<12i++) { duplicateMovieClip(biaoge_mc, "biaoge_mc"+i, 3+i) setProperty("biaoge_mc"+i, _rotation, i*30) } //画时针 this.createEmptyMovieClip("shizhen_mc", 16) with (shizhen_mc) { lineStyle(4, 0x666666) moveTo(0, 0) lineTo(0, -60) _x = 100 _y = 100 } //画分针 this.createEmptyMovieClip("fenzhen_mc", 17) with (fenzhen_mc) { lineStyle(2, 0x666666) moveTo(0, 0) lineTo(0, -75) _x = 100 _y = 100 } //画秒针 this.createEmptyMovieClip("miaozhen_mc", 18) with (miaozhen_mc) { lineStyle(1, 0x666666) moveTo(0, 0) lineTo(0, -90) _x = 100 _y = 100 } //让时针、分针、秒针动起来 this.createEmptyMovieClip("time_mc", 19) time_mc.onEnterFrame = function() { my_date = new Date() shi = my_date.getHours() fen = my_date.getMinutes() miao = my_date.getSeconds() shizhen_mc._rotation = shi/12*360+fen/60*30 fenzhen_mc._rotation = fen/60*360+miao/60*6 miaozhen_mc._rotation = miao/60*360 if (shi<10) { shi = "0"+shi } if (fen<10) { fen = "0"+fen } if (miao<10) { miao = "0"+miao } my_txt.text = shi+":"+fen+":"+miao } //画中心圆 this.createEmptyMovieClip("yuan_mc", 20) with (yuan_mc) { beginFill(0x555555) moveTo(Math.cos(0*Math.PI/180)*4, Math.sin(0*Math.PI/180)*4) for (var i = 360i>=0i--) { lineTo(Math.cos(i*Math.PI/180)*4, Math.sin(i*Math.PI/180)*4) } _x = 100 _y = 100 }

具体步骤

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://outofmemory.cn/yw/7957139.html

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

发表评论

登录后才能评论

评论列表(0条)

保存