快速业务通道

Flash教程 随鼠标的旋转星星效果制作

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

这个坐标值会离鼠标越来越近的,直到和鼠标的坐标一样,那么相同后面的MC也一样会近,直到它们的坐标和鼠标相等为止,而且它们的坐标永远也不会小于鼠标的坐标。
大家先来看下最后的效果:

第一步: 打开Flash,新建影片剪辑元件,命名“星”,绘制一个星星出来,把它的中心点和舞台注册点对齐,第20帧和第40处各插入一个关键帧。然后选中第20帧,在它的中心点和舞台的注册点对齐的情况下按住SHIFT键进行等比例缩小(你认为差不多就行了),然后选中第1到20帧的任意一帧创建补间动画,打开属性面板把它的转调成逆时针,选中第20到40帧的任意一帧创建补间动画,打开属性面板把它的转调成顺时针。

第二步:

再次新建影片剪辑元件,命名为“转圈的星”,在图层面板的地方找到“添加运动引导层”添加一个引导层出来,在选中该图层的情况下按住AIT+SHIFT键在舞台上绘制一个有边框无填充色的圆(大小你认为合适就OK),然后用鼠标圈住它的一点边选中后删除(这样做是给它一缺口),选中绘制好的圆,让它的左和上对齐舞台中心的注册点,选中第40帧处添加一个帧,锁定该图层,选择第一个图层把我们库中的星星拖进来并把它的中心点对齐引导层中圆的上边的那个缺口的地方,选中第四十帧插入一个关键帧把它的中心点对齐引导层中圆的下边的那个缺口的地方。回到舞台,把库中转圈的星星放到舞台任意位置,并给它一个实例名称mc,这里的命名大家可以随意。

第三步:

继续插入一个影片剪辑元件,命名为“as",选中第一帧添加以下代码:
vark:Number=64;//用来定义星星的个数;
varn:Number=16;//用来定义一圈星星的个数;
varr:Number=2;X坐标和Y坐标的缓动,值越大跟随鼠标移动时就越慢;
for(vari=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(varj=1;j<=k;j++){
setProperty("_root.mc"+j,_x,_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/r);
setProperty("_root.mc"+j,_y,_root["mc"+j]._y+(_root["mc"+(j-1)]._y-_root["mc"+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看

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号