关于我们 广告服务 社区论坛
设为首页 加入收藏

行业新闻
服 务 器
模版下载
建站指南
冲浪宝典
办公软件
网站运营
操作系统
QQ 专题
网页制作
安全防御
视频教程
网络编程
SEO专区
软件下载
图像设计
Cisco
网页特效
Wap 技术
联盟赚钱
网页素材
 首页 | 企业建站 | 网页制作 | 网站运营 | 网络编程 | 图像设计 | 冲浪宝典 | 操作系统 | SEO专区 | 联盟赚钱 | Cisco

欢迎来到e天下网络首页>>图像设计>>FLASH>>正文|用AS来实现飘雪效果动画

用AS来实现飘雪效果动画

[ 来路:网页教学网      时间:2007-7-10 3:26:14    点击: ]

 

  什么都不用管,只要将下面的这些AS代码COPY到FLASH MX新建文档的第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 (var i = 3; i<=S_snow; i++) {
 var truewebjx = ["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是势在必行的……
  但是,不要忘了,Flash MX中,背景的默认色就是白色,所以如果我们直接做出雪花飘落的效果也看不出来(因为雪花与背景都是白色)因此第一步是——用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 (var i = 3; i<=S_snow; i++) {
 var truewebjx = ["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()


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

::::站长友情提示:多花一分钟学点什么都好::::

 

上一篇:Flash二级菜单的制作  下一篇:Flash视觉特效的制作

 ::热点信息::

 

= = 免责声明 = =

① 欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com

::推荐文章::

 

Photoshop 轻松打造神秘银河系

::网页制作::

 

初学:什么是DIV+CSS?有什么
网页制作实例CSS用一张图片实
用CSS控制图片自适应大小的方
小技巧:CSS列表标签出现问题
CSS网页设计中使用背景图片须
想让DIV居中,如何编写CSS的
总结两年以来使用DIV网页排版
DIV CSS技巧:对CSS命名的一
更多内容..

 

 

关于我们 广告服务 友情链接 合作伙伴 社区论坛 免责声明

Copyright © 2007   21kn.com Inc. All rights reserved.e天下网络工作室

网站白天客服QQ:26875416 (非24小时)  合作QQ:597004688    粤ICP备06026423号