论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

Flash AS教程_用纯AS做了个下雨效果源码

文章类别:Flash AS | 发表日期:2010-4-12 9:59:51

Flash AS教程_关于随机打乱数组的深入研究详解

21视频教程网

//=================MC类自定义方法====================
//——————宽高矩形法,根据初始点坐标和宽与高确定矩形。x,y为初始点坐标,kuan和gao为矩形的宽和高。
MovieClip.prototype.kuangaojuxing = function(x, y, kuan, gao, bangzhi, yanse, toumingdu) {
       this.lineStyle(bangzhi, yanse, toumingdu);
       this.moveTo(x, y);
       this.lineTo(x+kuan, y);
       this.lineTo(x+kuan, y+gao);
       this.lineTo(x, y+gao);
       this.lineTo(x, y);
};
//——————MC定位方法
MovieClip.prototype.dingwei = function(x, y) {
       this._x = x;
       this._y = y;
};
//==================创建下雨动画=====================
//定义下雨动画函数,相关参数请参考下面的注释
/*
x_fc:下雨动画的X坐标
y_fc:下雨动画的Y坐标
yanse_fc:雨滴颜色
toumingdu_fc:雨滴透明度
yudikuan_fc:雨滴的宽
yudigao_fc:雨滴的高
qingxie_fc:雨滴的倾斜度
mijidu_fc:雨滴的密集度
pinlu_fc:下雨画面更换的频率
kuan_fc:下雨画面宽
gao_fc:下雨画面高(它和上面的参数一起控制下雨范围)
*/
function xiayudonghua(x_fc, y_fc, yanse_fc, toumingdu_fc, yudikuan_fc, yudigao_fc, qingxie_fc, mijidu_fc, pinlu_fc, kuan_fc, gao_fc) {
       //创建下雨动画MC
       createEmptyMovieClip("xiayu_mc", 10000);
       //定位下雨动画MC
       xiayu_mc.dingwei(x_fc, y_fc);
       //在下雨动画里创建单个雨滴MC
       xiayu_mc.createEmptyMovieClip("yudi_mc", 10000);
       with (xiayu_mc) {
              //宽高矩形法绘制单个雨滴MC
              yudi_mc.beginFill(yanse_fc, toumingdu_fc);
              yudi_mc.kuangaojuxing(0, 0, yudikuan_fc, yudigao_fc, 0, 0x000000, 0);
              yudi_mc.endFill();
              //定义雨滴的倾斜度
              yudi_mc._rotation = qingxie_fc;
              //连续调用“jingtaihuamian”函数,形成下雨动画
              var xiayu_si = setInterval(jingtaihuamian, pinlu_fc, mijidu_fc, kuan_fc, gao_fc);
       }
}
//定义下雨动画的静态画面函数
function jingtaihuamian(mijidu_fc, kuan_fc, gao_fc) {
       //随机复制单个雨滴MC,形成单贞下雨画面
       for (var i = 0; i<mijidu_fc; i++) {
              xiayu_mc.yudi_mc.duplicateMovieClip("yudi_mc"+i, i);
              xiayu_mc.yudi_mc.dingwei(random(kuan_fc), random(gao_fc));
       }
}
//==============按钮控制下雨动画===============
kaishi_btn.onRelease = function() {
       //在需要下雨的贞调用这个函数就可以下雨了!
       xiayudonghua(0, 0, 0xffffff, 50, 2, 30, 30, 100, 10, 550, 400);
};
tingzhi_btn.onRelease = function() {
       //天晴的时候就调用这个函数
       xiayu_mc.removeMovieClip();
};
只要把上面的代码复制到第一贞,然后再建立一个“kaishi_btn”和"tingzhi_btn”按钮就可以欣赏效果了。我把代码写到函数里,是为了方便在动画中使用,在需要下雨的地方,只要调用"xiayudonghua"这个函数就可以了,而在天晴的时候,写一句xiayu_mc.removeMovieClip()就OK了
下面大致讲一下原理。
★别一看是纯AS写出来的,就貌似很牛B了,吓得你只敢用不敢看了,其实它的原理很简单
1,先创建一个空的xiayu_mc,所有的雨滴都将放到这个MC里,这是为了便于删除下雨效果。
2,然后在这个MC里调用自己定义绘图方法绘制一个细条型的矩形,这个矩形就是原始的雨滴模型yudi_mc。
3,根据这个雨滴模型复制大量相同的雨滴,并使他们随机分布在指定的范围内,这样就形成了一个下雨的画面,这个画面就类似那些动画设计师在PS中绘制的下雨图片。这个过程在jingtaihuamian函数中完成。
4,最后就是通过setInterval不断调用jingtaihuamian函数,由于jingtaihuamian中使用了随机函数,每次调用jingtaihuamian生成的下雨画面都不一样,这样连续起来就形成比较逼真的下雨效果了。
★怎么样,很简单吧
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058