用AS来实现飘雪效果动画
2008-04-02 10:49:09来源:互联网 阅读 ()
什么都不用管,只要将下面的这些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];
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 出色:Flash手绘一副帅气眼镜
下一篇: 离散艺术
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash