当前位置: 电脑软硬件应用网 > 设计学院 > 图像处理 > 正文 |
|
|||
真实源于转动 用Flash 5制作转动时钟 | |||
2005-12-30 19:01:20 文/佚名 出处:电脑软硬件应用网 | |||
描述 内容描述:使用Flash 5中的时间对象制作一个转动的时钟,该时钟时、分、秒针的转动与系统的时间一致。 组成元素:时、分、秒三个电影夹子(h0,m0,s0),时间的刻度图形符号两个(a、b), 制作步骤 1、如图1所示,在一个新的Flash文档中画两个符号,并分别把它们转换成图形符号a、b(选中后按F8),用于制作时钟正点的刻度; 2、双击图形符号a,进入编辑状态,打开信息面板(窗口\面板\信息),将图形的位置设置在(0,-160); 3、回到主场景,选中a,打开转换面板,在“旋转”后的空白中输入30,不断点击面板右下角的第一个按钮,复制出12个a,由于我们刚才设置了a中符号的位置,所以这12个a都绕a的中心(0,0)排成一个圈,即处于12个时间正点的位置; 4、为了美观,我们删去处于12、3、6、9时间点的a,用同样的方法将b中的图形位置放在(0,-160),再复制四个b,放在这四个位置上,只是把旋转的角度改为90; 5、回到主场景中,按住Shift键点击这四个b,用方向键调整它们的位置与刚才做好的8个a相适应; 6、选中这12个图形符号,按Ctrl+G将它们组合,完成表盘的制作;另外,可以双击这个组合,在他们内部添加一些装饰如文字称底、时刻代码等,将界面加以美化; 7、在主场景中画出时针、分针、秒针(注意长度与做好的表盘相适应,如图2),并分别将它们转换成电影夹子h0、m0、s0,同样,分别进入它们的编辑状态,调整它们的转动轴点位于影片的中心; 8、回到主场景中,在实例面板中将时、分、秒影片的名称分别改为h0、m0、s0; 9、分别点击秒、分、时影片及刚才做好的表盘,按Ctrl+Shift+↓(向下方向键)调整它们的顺序; 10、将时、分、秒针影片在轴点对齐,而且都指向12点(如图3); 11、点击文本工具,在主场景中拖出一个文本框(能容纳20个字符就行),在文本框属性面板中设置为“动态文本”,变量名为timenow。 代码输入 在第三帧插入一个普通帧,并新建一层。并完成如下步骤: 1、在时间线双击第一帧,在弹出的动作面板中加入以下代码: command ("fullscreen", "true");//全屏显示 mydate = new date ();//定义一个时间对象的实例 hour = Number(mydate.getHours()); hour = hour%12;//获取系统当前时间(时)并把它转化为12小时制 minute = Number (mydate.getMinutes());//获取当前分数 second = Number (mydate.getSeconds())-1;//获取当前秒数 h = (hour*30+minute*0.5+second*0.0833)%360;//将当前时针基于初始位置的转动幅度赋予变量h m = (minute*6+second*0.1)%360; s = (second*6)%360; setProperty ("h0", _rotation, h); setProperty ("m0", _rotation, m); setProperty ("s0", _rotation, s); angle = s; angleh = h; anglem = m;//将当前时、分、秒针的初始角度分别赋予三个变量 2、在第二帧插入关键帧,在动作面板中加入以下代码: mydate = new date(); day = mydate.getDate(); month = mydate.getMonth()+1; second = mydate.getSeconds(); week0 = mydate.getday();//获取当天是星期几 if (Number(week0) == 1) { week0 = "一";} if (Number(week0) == 2) { week0 = "二";} if (Number(week0) == 3) { week0 = "三";} if (Number(week0) == 4) { week0 = "四";} if (Number(week0) == 5) { week0 = "五";} if (Number(week0) == 6) { week0 = "六";} if (Number(week0) == 0) { week0 = "日";} //以上把获取的星期数字号码转换成大写 if (day<10) { day = "0"+String(day);} //将一位数的日期号码转换成两位 if (moth<10) { month = "0"+String(month);} //系统的月份从0开始计数,故要进行转换 timenow = mydate.getFullYear() +"."+month+"."+day+"\t星期"+week0; if (s != second) { s = second; angle = angle+6; setProperty ("s0", _rotation, angle);//设置秒针的当前位置;每一秒秒针的转动角度为6(360度/60秒)度 anglem = anglem+0.1; setProperty ("m0", _rotation, anglem); angleh = angleh+0.0083; setProperty ("h0", _rotation, angleh); } 3、在第三帧插入关键帧,并在动作面板中加入以下代码: gotoAndPlay (2);//进入第二帧循环获取系统的当前时间,并设置相应指针的旋转角度。 到此,本实例就全部完成了。按Ctrl+Enter键测试一下,可以看到秒针一秒一秒地转动,文本框里显示了当前的时间信息,而分针与时针也在偷偷地运转。 |
|||
最新热点 | 最新推荐 | 相关文章 | ||
解决Fla文件编译SWF后体积过大 Flash代码收集及常见问题解决方法 网页不能播放flash的解决 flash9.ocx 加载错误解决方法 IE(浏览器)无法显示Flash文件 新鲜玩法 Flash动画用电视观看 Flash制作地室中的幽灵火焰 用Flash制作即指即现的广告条 经典!给FLASH初学者的10点制作经验 javascript的下雨效果,比flash的… |
关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 | |
Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号 |