FLASH下载

设为首页
繁體中文
闪客留言

 首页 | FLASH动画 | FLASH专辑 | FLASH短片 | FLASH游戏 | FLASH歌曲 | FLASH教程 | Flash播放器代码
您当前的位置:flash下载 -> FLASH教程 -> AS教程 -> 文章内容  
栏目导航 相关文章
· FLASH基础 · FLASH实例教程
· FLASH技巧 · AS教程
·[组图]使用Flash制作闪电效...


用 Flash 5 编程制作闪电效果

作者:转载  来源:[闪客]  发布时间:2006-5-22 21:31:50  编辑人:[FLASH教程]

减小字体 增大字体


  在这个效果里有用到ACTION,如果你不会就赶快先学好ACTION吧。还用到了我们中学时学过的三角函数,为了这个效果我还专门找邻居家的小弟弟,借来他的教科书,把三角函数好好学了一下。现在真是后悔当初怎么不好好读书呀!

  好了,#我就不放了,进入正题吧。首先做一个如左图的MC,聪明的你一定看出来了,他是由三个部份组成的,上面一个半圆,中间一个矩形,下面又一个半圆。要注意MC的中心点要在上一个半圆的圆心的位置。下面我就称它为"闪光段"。

  传统的教育是一步一步,按步就搬,现在不是流行启发式教育吗?我们不妨先来看看做成品。

  下面我就来讲解一下我的算法:

  整个闪电是由一定数量“闪光段”的替身组成。每节“闪光段”的长度和旋转角度都是不定的,这可以用random(随机函数)来实现。而“闪光段”的粗细则是从大到小变化的。第一个“闪光段”的位置是固定的,而第二个“闪光段”的位置是利用前一个“闪光段”的长度和旋转角度通过三角函数计算出来的。

  具体做法:

  先把“闪光段”MC拖到场景中,起名为“basic”,第一个关键帧后加入一个关键帧,整个动画只有两个关键帧。

  下面是第一帧的程序:(红色文字是注释)

heightstart = 10;  定义“闪光段”高度的最小值heightrange = 50;  定义“闪光段”高度的范围anglestart = -80;  定义“闪光段”转角的最小值anglerange = 160;  定义“闪光段”转角的范围setProperty ("basic", _visible, false);   设置“闪光段”basic在场景中不可见

  下面是第二帧的程序:(红色文字是注释)

i = 1; //置循环初值currentx = 300; //第一个闪光段的位置(X)currenty = 0; //第一个闪光段的位置(Y)do {  i = i+1;  heightoffset = random(heightrange)+heightstart; //产生随机长度  angleoffset = random(anglerange)+anglestart; //产生随机旋转角度  newobj = "basic" add i; //产生一个字符串,用于下一条语句中。  duplicateMovieClip ("basic", newobj, i);   //复制新的闪光段,用newobj中的字符串为其命名,设置它的深度为i  setProperty (newobj, _x, currentx); //设置刚复制的闪光段的位置(X)  setProperty (newobj, _y, currenty); //设置刚复制的闪光段的位置(Y)  setProperty (newobj, _height, heightoffset); //设置刚复制的闪光段的长度  setProperty (newobj, _rotation, angleoffset); //设置刚复制的闪光段的旋转角度  setProperty (newobj, _xscale, 100-5*i); //设置刚复制的闪光段的粗细  currentx = currentx-(Math.sin(angleoffset*3.14/180))*heightoffset*.7;  //计算下一个闪光段的位置(X)  currenty = currenty+(Math.cos(angleoffset*3.14/180))*heightoffset*.7;  //计算下一个闪光段的位置(X)} while (i<20); //设置循环结束条件,数值越大,闪电的段数越多,当然太多会超出屏幕,可以改小长度。

  好了就讲到这地吧,有什么问题再联系我吧!

  请在这里下载源代码

(完)

[] [返回上一页] [打 印]
下一篇文章:遮罩的Action控制
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [查看评论>>>]