Flash好看的跟随鼠标的旋转星星.doc_第1页
Flash好看的跟随鼠标的旋转星星.doc_第2页
Flash好看的跟随鼠标的旋转星星.doc_第3页
Flash好看的跟随鼠标的旋转星星.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

核心提示:Flash好看的跟随鼠标的旋转星星制作教程。第一步:打开FLASH,新建一个影片剪辑元件,命名为“星星”,在里面绘制一个星星出来,并且把它的中心点和舞台注册点对齐,在第20帧和第40处各插入一个关键帧。选中第20帧,在它的中心点和舞台的注册点对齐的情况下按住SHIFT键进行等比例缩小(你认为差不多就行了),然后选中第1到20帧的任意一帧创建补间动画,打开属性面板把它的转调成逆时针,选中第20到40帧的任意一帧创建补间动画,打开属性面板把它的转调成顺时针。第二步:在新建一个影片剪辑元件,命名为“转圈的星星”,在图层面板的地方找到“添加运动引导层”添加一个引导层出来,在选中该图层的情况下按住AIT+SHIFT键在舞台上绘制一个有边框无填充色的圆(大小你认为合适就OK),然后用鼠标圈住它的一点边选中后删除(这样做是给它一缺口),选中绘制好的圆,把它的左和上对齐舞台中心的注册点,选中第40帧处添加一个帧,锁定该图层,选择第一个图层把我们库中的星星拖进来并把它的中心点对齐引导层中圆的上边的那个缺口的地方,选中第四十帧插入一个关键帧把它的中心点对齐引导层中圆的下边的那个缺口的地方。回到舞台,把库中转圈的星星放到舞台任意位置,并给它一个实例名称mc。第三步:继续插入一个影片剪辑元件,命名为“as,选中第一帧添加以下代码:var k:Number=64;/用来定义星星的个数; var n:Number=16;/用来定义一圈星星的个数; var r:Number=2;X坐标和Y坐标的缓动,值越大跟随鼠标移动时就越慢; for(var i=1;i=k;i+) duplicateMovieClip(_root.mc,mc+i,i); setProperty(_root.mc+i,_rotation,360/n*i); setProperty(_root.mc+i,_alpha,100/k*i); setProperty(_root.mc,_visible,0);选中第二帧处插入一个空白关键帧添加以下代码: for(var j=1;j=k;j+) setProperty(_root.mc+j,_x,_rootmc+j._x+(_rootmc+(j-1)._x-_rootmc+j._x)/r); setProperty(_root.mc+j,_y,_rootmc+j._y+(_rootmc+(j-1)._y-_rootmc+j._y)/r); 选中第三帧处插入一个空白关键帧添加以下代码:gotoAndPlay(2);添加完代码以后回到主场景;第四步:把库中名为as的元件拖放到舞台上,给它一个实例名称mc0.在主场景内添加一个图层在第一帧加上拖动代码:startDrag(_root.mc0,true);注意这里是mc0不是mc,虽然你拖动的影片里面没有东西,在下面我后细说的;做到现在就算完工了,我在这里就把重点的地方说一下。N为什么是它的一圈星星的个数在第一个for循环语句里有这样一段, setProperty(_root.mc+i,_rotation,360/n*i);看它的_rotation的值是360/n*i也就是_root.mc+i,_rotation=360/16*i也就是_root.mc1._rotation=360/16*1_root.mc2._rotation=360/16*2_root.mc3._rotation=360/16*3_root.mc4._rotation=360/16*4_root.mc5._rotation=360/16*5_root.mc6._rotation=360/16*6_root.mc7._rotation=360/16*7_root.mc8._rotation=360/16*8_root.mc9._rotation=360/16*9_root.mc10._rotation=360/16*10._root.mc64._rotation=360/16*64也就是说把360度平均分成16份,它们的角度就是这个值,360/16=22.5。第一个MC的角度是从原MC角度22.5的地方开始复制出来的,第二个MC的角度是从原MC角度45的地方开始复制出来的,第三个MC的角度是从原MC角度67.5的地方开始复制出来的,直到乘到17的时候就重叠了,因为360/16*6=382.5,角最大值是360,当到382.5的时候它就把360看成0来计算了,结果就是22.5,当你把N的值调大的时候,比如36它就会有36个星星围成一圈了,360/36*i 也就是mc1角度是10*1,mc2的角度是10*2 ,mc3的角度是10*3 当乘到37的时候它的角度多了10也就是370,第37个MC的角度会是原MC角度的370-360也就是10,这就是N的值等于一圈星星的原因。我们在主场景第一帧里放的代码明明是拖动的MC0,为什么MC复制出来的影片会跟着鼠标走,把在AS第二帧设置X、Y坐标的循环代码拿下来分析一下:for(var j=1;j=k;j+) setProperty(_root.mc+j,_x,_rootmc+j._x+(_rootmc+(j-1)._x-_rootmc+j._x)/2); setProperty(_root.mc+j,_y,_rootmc+j._y+(_rootmc+(j-1)._y-_rootmc+j._y)/2); 看它的X坐标,setProperty(_root.mc+j,_x,_rootmc+j._x+(_rootmc+(j-1)._x-_rootmc+j._x)/2);setProperty这句话是说设置括号内(目标,目标的属性,该属性的值);我们现在的目标就是主场景上面的mc1,mc2,mc3,mc4,mc5.mc64;它们的X坐标值各是多少,为什么会跟随鼠标移动,我们来仔细地看下它们的值_root.mc+i._x_rootmc+j._x+(_rootmc+(j-1)._x-_rootmc+j._x)/2也就是mc1._x=mc1._x+(mc+(j-1)._x-mc1._x)/2假设mc1现在的坐标是300也就是mc1._x=300+(mc+(j-1)._x-300)/2现在我们已经得到两个数字了,还有一个mc+(j-1)._x,先算括号内,j-1第一次运行循环的时候j的值是1,就是1-1,也就是0;也就是mc+0,也就是mc0,也就是我们拖动的那个没有东西的影片剪辑。mc0是跟着我们的鼠标动的,上面搞清楚后,我们就在给mc0也就是我们鼠标的坐标假设一个值。随便设定一个我们就假设100吧,值有了我们在接着做算术。mc1._x=300+(100-300)/2也就是mc1._x=300+负200/2也就是mc1._x=300+负100 /注意下负值是越乘负的越多,越除负的越少,加减相反也就是mc1._x=200;当计算机运行到这里时,mc1的坐标是200了,但200还不符合我们所看到的效果,我们运行的时候是它的坐标是跟着鼠标走的,那么程序会接着往下走,它就会执行设定MC2的坐标了,MC2的坐标会是250,接着是MC3的坐标是275,总之是越往下它们坐标的间隔就会越小,你自己可以测试下看。当循环完64次以后程序跳出循环了,那么就会TOGO到下一帧,执行gotoAndPlay(2);又回来了,接着又是循环64次,代码还是相同的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论