用flash制作旋幻时针
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-15
1 基本设置。 (1)创建一个新的Flash5文件。 (2)按组合键“CTRL+M”修改影片属性(“MODIFY-$#@62;MOVIE”),DEMENSIONS的“WITDH”修改为500,背景用白色。 (3)选择“MODIFY菜单下的SCENE选项”,修改场景名称为“ROTATING CLOCK POINT”。 2 制作基本MOVIE CLIP。 (1)按组合键“CTRL+F8”创建(“INSERT” 下的“NEW SYMBOL”)一个新的“MOVIE CLIP”,名称为“ROT-SEED”, (2)用“TOOLS”工具箱里的“RECTANGLE TOOL”长方形工具,在场景中画一个灰色的长方形,然后切换到“ARROW”箭头工具选定长方形的上半部分,接着用“PAINT BUCKET TOOL”上色工具选定黑色填充已经选择的长方形, (3)选择“ARROW”工具后,把上下2个长方形分别向左和右拉伸,最后拉成一个时针形状即可。(如图1) (图1) (4)做好了“ROT-SEED”以后,按组合键“CTRL+F8”创建一个名为“SEED”的MOVIE CLIP,按“CTRL+L”打开用户库,把刚才做好的“ROT-SEED”拖到当前场景当中。 (5)按组合键“CTRL+I”打开“INSTANCE”导出实例面板(“WINDOW”-$#@62;“PANAELS”-$#@62;“INSTANCE”,输入INSTANCE名称为“CLOCK”,接着,按组合键“CTRL+ALT+A”输入MOVIE CLIP对象的ACTION: onClipEvent (load) { i = 1; s = 0; myalpha = 100; } onClipEvent (enterFrame) { i++; if (s$#@60;=12000 and s$#@62;=0) { s = i*i; this._rotation = s; this._xscale = i; this._alpha = myalpha--; } } 这里,当这个帧被读取的时候,设定了3个初始变量:I,S和MYALPHA,分别控制循环次数,旋转度数和ALPHA透明度。 在每次进入这个帧的时候,就依次递增I(可间接代替FOR循环),用IF条件语句判断S的度数,如果S没有超出规定的范围(12000),那么就让这个MOVIE对象旋转,其语句就是设定_ROTATION属性,而它的ALPHA属性会每次的递减,直到“消? 为止。 最后,“CTRL+L”打开用户库,右击“SEED”,选择“LINKAGE”,在“SYMBOL LINKAGE PROPERTIES”连接属性当中选择“EXPORT THIS SYMBOL”方式,在“IDENTIFIER:”(ID名称)中输入SEED。(如图2) (图2) (6)新建一个“MOVIE CLIP”,并且输入名称为:“BG”,在其中用“RECTANGLE TOOL”画一个白色的长方形,这样,所有的基本元件就做好了。 3,主场景设计。 (1)先把“BG”从库中拉到主场景当中,然后按“CTRL+I”设定INSTANCE NAME:BG; (2)在主场景的第1帧按F6插入关键帧,并双击这个帧输入ACTION: fscommand ("fullscreen", "true"); stop (); function clear (seednum) { if (seednum==0) { return; } for (i=seednum; i$#@62;0; i--) { removeMovieClip (_root.bg["seed"add i]); } } 先用FS COMMAND设定全屏幕播放的外部命令,并停止当前播放的进程(如果影片只有1帧,也可以不用STOP,但最后一帧用STOP也是一个好习惯); 主场景ACTION内写了一个CLEAR的函数,准备随时被需要的地方调用,功能在下面会结合调用的地方一起说明。 (3)选定“BG”,然后按组合键“CTRL+ALT+A”打开ACTION面板,输入如下ACTION: onClipEvent (mouseMove) { _root.clear(this.seednum); this.seednum = random(100)+20; for (i=1; i$#@60;=this.seednum; i++) { this.attachMovie("seed", "seed"add i, i); this["seed"add i]._x=random(500)-random(500); this["seed"add i]._y=random(400)-random(400); xyseed = random(100); this["seed"add i]._xscale=xyseed; this["seed"add i]._yscale=xyseed; this["seed"add i]._rotation=random(360); } } 既是当鼠标移动的时候,产生一个20~120的随机数提供给种子变量SEEDNUM,用一个FOR循环来绑定SEEDNUM个“SEED”,这需要语句ATTACHMOVIE来配合,每新产生的MOVIE 对象都被赋予了名称(SEED1、SEED2……SEED SEEDNUM)和层次(1,2……SEEDNUM); 设定了名称和层次还不能很好的控制SEED,这里,使用了常用的_X、_Y(坐标)、_XSCALE、_YSCALE(大小)和_ROTATION(旋转),请读者自行测试其功能以加强理解。 以上是一次循环下来的结果,但是,当用户再次挪动鼠标的时候也会产生这段ACTION,那就会产生不希望的结果,所以用到了函数CLEAR(),当用户鼠标移动,首先清楚上次产生的MOVIE,而SEEDNUM就是没有改变的上次MOVIE对象的总数,调用CLEAR以后,用循环的方法,结合REMOVIEMOVIECLIP删除“BG”下的所有MOVIE对象,这样,新的MOVIE产生以后是不会产生冲突,并得到了最终结果:旋幻时钟。 关键词:时钟 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: FLASH的帧:帧的概念下一篇: 动态菜单一指通
关于用flash制作旋幻时针的所有评论