很多新手做雪花大都是做一个MC,然后复制多份,定制不同的_x,_y和大小,alpha,这样做的话会使得做效果不便于控制,修改,小生试用AS做雪花基本成功,成果不敢独享,因此发出来,望高手指点。
最终效果http://ezse.com/flash/snow.html
首先,当然是打开一个新文档,为了使雪花的坠落更加流畅,把文档的帧数设为40/s(我的习惯)
首先,在文档中建立一个圆,作为一片雪花,然后点F8,设为mc,双击进入mc的编辑,把此mc做成一个雪花坠落的效果。如图:
在起始的alpha设为0,终止的也设为0, 在起始的alpha设为0,终止的也设为0,.好,这样就做到了一片雪花飘落的效果,但是,天不可能只下一片雪花的,因此,我们回到_roor的场景,把刚做的mc设名为snow ,然后在第一帧上写上代码:
amount = 100;//这里是场景将出现的雪花总数,为了真实,可以设得更高
i=1;
while (amount>0) {
duplicateMovieClip (snow, "mc"+i, this.i);//这是把snow复制成一个mc**的mc
setProperty ("mc"+i, _x, random(400));//在0-400中取一个随机X
setProperty ("mc"+i, _y, random(400));// 在0-400中取一个随机Y,这个X,Y就决定雪花出现的区域
setProperty ("mc"+i, _alpha, random(20)+80);//这里给雪花加一个alpha,其中80代表起始alpha,这样会使生成的雪花alpha在[80,100]的区间内,如果为了真实,可以设为random(80)+20 这样雪花就会更有层次感。
tmp=random(80);//这个是决定雪花的大小
setProperty ("mc"+i, _xscale, tmp);
setProperty ("mc"+i, _yscale, tmp);
_root.i++;
amount--;
}
现在可以看看效果了,只是。。。你会发现雪花是同时出现,同时消失,实际中不可能会这样出现,因此,我们再进入snow的那个mc中,在第一帧写上gotoAndPlay(random(80));//这里的80是指这个mc的总帧数,然后,再在最后的一帧上写上gotoAndPlay(2);这样就可以实现完全随机了。
下面,我们来看看我们做的效果。。。
这样做的话,不仅能实现,改一个mc就能全改所有的mc,还能随机出现位置,做到真正的人性化,使观看者每次看到的都不一样。如果多做一些MC,就可以实现不同的飘落方式的下雪,更逼真。这个教程的fla(flash 2004的fla)下载http://www.ezse.com/bbs/uploadImages/2003101719415351298.rar
如果大家有问题,请到bbs.ezse.com中提出问题,也欢迎您光临我的小站http://www.ezse.com