分享
 
 
 

用AS来实现飘雪效果动画

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

什么都不用管,只要将下面的这些AS代码COPY到FLASHMX新建文档的第1帧中,Ctrl+回车测试一下,就会看到雪花效果了。

//代码如下:

//=========

S_X=Stage.width;

S_Y=Stage.height;

S_snow=120;

TTurl="www.webjx.com"

_root.createEmptyMovieClip("webjx_BG",1);

with(_root.webjx_BG){

beginFill(0x000000,100);

lineStyle(0,0x000000,0);

moveTo(0,0);

lineTo(S_X,0);

lineTo(S_X,S_Y);

lineTo(0,S_Y);

lineTo(0,0);

endFill();

}

_root.createEmptyMovieClip("webjx_snow",2);

with(_root.webjx_snow){

lineStyle(0,0x000000,0);

beginFill(0xffffff);

moveTo(20,20);

curveTo(24,20,24,16);

curveTo(24,12,20,12);

curveTo(16,12,16,16);

curveTo(16,20,20,20);

endFill();

}

_root.webjx_snow._visible=0

webjx=3;

while(webjx<=S_snow&&TTurl=="www.webjx.com"&&substring(_root.TTurl,5,5)=="webjx"){

duplicateMovieClip("webjx_snow","snow"+webjx,webjx);

with(eval("snow"+webjx)){

_x=random(S_X);

_y=random(S_Y);

_xscale=Math.random()*60+40;

_yscale=eval("snow"+webjx)._xscale;

_alpha=eval("snow"+webjx)._xscale+random(15);

}

webjx++;

}

for(vari=3;i<=S_snow;i++){

vartruewebjx=["snow"+i];

_root[truewebjx].onEnterFrame=function(){

this._x+=Math.random()*(this._xscale)/10;

this._y+=Math.random()*(this._yscale)/10;

if(this._x>_root.S_X){

this._x=0;

}

if(this._y>_root.S_Y){

this._y=0;

}

};

}

//=========================

//代码结束

怎么样,看到效果了吧:)

现在我来说一下我在制作时的编程思路:

我们要做飘雪效果,那一定要有白色的雪花,所以用createEmptyMovieClip()来创建一个白色小圆的MC是势在必行的……

但是,不要忘了,FlashMX中,背景的默认色就是白色,所以如果我们直接做出雪花飘落的效果也看不出来(因为雪花与背景都是白色)因此第一步是――用createEmptyMovieClip()创建一黑色矩形,大小与主场景同大。

S_X=Stage.width;//主场景的宽

S_Y=Stage.height;//主场景的高

用来获得主场景的宽度与高度。

//下面是制作一个黑色的背景

_root.createEmptyMovieClip("webjx_BG",1);

with(_root.webjx_BG){

beginFill(0x000000,100);

lineStyle(0,0x000000,0);

moveTo(0,0);

lineTo(S_X,0);

lineTo(S_X,S_Y);

lineTo(0,S_Y);

lineTo(0,0);

endFill();

}

用createEmptyMovieClip("webjx_BG",1)来创建一个新的MC(电影剪辑)。再用变量S_X与S_Y表示主场景的宽和高。画好矩形线框后,再把与主场景同大的MC填充为黑色。

第一步已经完成了。可以先Ctrl+回车测试一下,看是不是在主场景中有一个黑色的矩形?

好了,再来做雪花:

//制作一个雪花,填充为白色的小圆。

_root.createEmptyMovieClip("webjx_snow",2);

with(_root.webjx_snow){

lineStyle(0,0x000000,0);

beginFill(0xffffff);

moveTo(20,20);

curveTo(24,20,24,16);

curveTo(24,12,20,12);

curveTo(16,12,16,16);

curveTo(16,20,20,20);

endFill();

}

Ctrl+回车测试一下,看是不是在场景的左上角出现一个小白点?

好了,我们继续向下做:

既然是雪花飞舞,就不可能只有一个雪花在飞

所以我们要用duplicateMovieClip()来复制出N多个雪花,为了日后修改时或别人看时都方便,我们把雪花的个数用变量来代替:

S_snow=120;//雪花的个数

_root.webjx_snow._visible=0//将原雪花隐藏

webjx=3;

while(webjx<=S_snow&&TTurl=="www.webjx.cn"&&substring(_root.TTurl,5,5)=="webjx"){

duplicateMovieClip("webjx_snow","snow"+webjx,webjx);

with(eval("snow"+webjx)){

_x=random(S_X);

_y=random(S_Y);

_xscale=Math.random()*60+40;

_yscale=eval("snow"+webjx)._xscale;

_alpha=eval("snow"+webjx)._xscale+random(15);

}

webjx++;

}

OK,现在再测试一下,看看是不是满天的雪花:)

虽然是满天的雪花,可是不会动怎么办?

没关系,我们还是可以用AS来实现D~~~

LOOK:

//控制雪花的飘动,如果飘出主场景,则重新回到主场景中来

for(vari=3;i<=S_snow;i++){

vartruewebjx=["snow"+i];

_root[truewebjx].onEnterFrame=function(){

this._x+=Math.random()*(this._xscale)/10;

this._y+=Math.random()*(this._yscale)/10;

if(this._x>_root.S_X){

this._x=0;

}

if(this._y>_root.S_Y){

this._y=0;

}

};

}

利用for循环来控制所有被复制出来的雪花,为加强随机效果,我们可以使用Math.random()

好了,就讲到这了,自己动手试试吧:)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有