收藏 分享(赏)

Flash好看的跟随鼠标的旋转星星.doc

上传人:kpmy5893 文档编号:7657111 上传时间:2019-05-23 格式:DOC 页数:4 大小:31.50KB
下载 相关 举报
Flash好看的跟随鼠标的旋转星星.doc_第1页
第1页 / 共4页
Flash好看的跟随鼠标的旋转星星.doc_第2页
第2页 / 共4页
Flash好看的跟随鼠标的旋转星星.doc_第3页
第3页 / 共4页
Flash好看的跟随鼠标的旋转星星.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、核心提示:Flash 好看的跟随鼠标的旋转星星制作教程。第一步:打开 FLASH,新建一个影片剪辑元件,命名为“星星”,在里面绘制一个星星出来,并且把它的中心点和舞台注册点对齐,在第 20 帧和第 40 处各插入一个关键帧。选中第 20 帧,在它的中心点和舞台的注册点对齐的情况下按住 SHIFT 键进行等比例缩小(你认为差不多就行了),然后选中第 1 到 20 帧的任意一帧创建补间动画,打开属性面板把它的转调成逆时针,选中第 20 到 40 帧的任意一帧创建补间动画,打开属性面板把它的转调成顺时针。第二步:在新建一个影片剪辑元件,命名为“转圈的星星”,在图层面板的地方找到“添加运动引导层” 添

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

3、umber=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);选中第二帧处插入一个空白关键帧添加以下代码: f

4、or(var j=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.在主场景内添加一个图层在第一帧加上拖动代码:startDr

5、ag(“_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._rotati

6、on=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

7、角度 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

8、 的角度会是原 MC 角度的 370-360 也就是 10,这就是N 的值等于一圈星星的原因。我们在主场景第一帧里放的代码明明是拖动的 MC0,为什么 MC 复制出来的影片会跟着鼠标走,把在 AS第二帧设置 X、Y 坐标的循环代码拿下来分析一下:for(var j=1;j=k;j+) setProperty(“_root.mc“+j,_x,_root“mc“+j._x+(_root“mc“+(j-1)._x-_root“mc“+j._x)/2); setProperty(“_root.mc“+j,_y,_root“mc“+j._y+(_root“mc“+(j-1)._y-_root“mc“+j

9、._y)/2); 看它的 X 坐标,setProperty(“_root.mc“+j,_x,_root“mc“+j._x+(_root“mc“+(j-1)._x-_root“mc“+j._x)/2);setProperty 这句话是说设置括号内(目标,目标的属性,该属性的值);我们现在的目标就是主场景上面的 mc1,mc2,mc3,mc4,mc5mc64;它们的 X 坐标值各是多少,为什么会跟随鼠标移动,我们来仔细地看下它们的值_root.mc+i._x_root“mc“+j._x+(_root“mc“+(j-1)._x-_root“mc“+j._x)/2也就是mc1._x=mc1._x+(m

10、c+(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+负 20

11、0/2也就是mc1._x=300+负 100 /注意下负值是越乘负的越多,越除负的越少,加减相反也就是mc1._x=200;当计算机运行到这里时,mc1 的坐标是 200 了,但 200 还不符合我们所看到的效果,我们运行的时候是它的坐标是跟着鼠标走的,那么程序会接着往下走,它就会执行设定 MC2 的坐标了,MC2 的坐标会是250,接着是 MC3 的坐标是 275,总之是越往下它们坐标的间隔就会越小,你自己可以测试下看。当循环完 64 次以后程序跳出循环了,那么就会 TOGO 到下一帧,执行 gotoAndPlay(2);又回来了,接着又是循环 64 次,代码还是相同的代码,不一样的是这次的坐标都是已经设置过的了,我们在看一下 MC1 现在的坐标是多少了,上次设置过后是 200,那么现在是mc1._x=200+(100-200)/2也就是150这个坐标值会离鼠标越来越近的,直到和鼠标的坐标一样,那么相同后面的 MC 也一样会近,直到它们的坐标和鼠标相等为止,而且它们的坐标永远也不会小于鼠标的坐标。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报