手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网页制作>Flash>列表

flash打造飘动的汽泡

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  工具:flash2004

  思路:

  1.水泡的_x是左右随机晃动的,能够设定一个变量,让这个变量在某段x坐标内随机取值,取值之后,让_x趋向变量移动,移动到变量点时,变量再重新取值,_x再趋向变量移动。_x永远向变量方向移动。

  2.用attachMovie来复制泡泡,用unloadMovie实现卸载泡泡。

  3.以帧来实现循环,以便产生多个泡泡。

  做法:

  第一步: 新建文档,长宽为300×200,背景白色,frame rate 设为60,能让泡泡移动得快一点流畅一些。

  第二步:画泡泡,保存为mc,命名为pao。

  第三步:再新建一个mc,命名为pp_mc,并设定输出连接名为pp,以便attachmovie调用。在mc的场景中拖入pao,坐标以需要泡泡出现的大体范围为准,我设的是x=98,y=10,pp_mc需要实现泡泡的随机移动,所以,选定pao,打开action面板。代码如下:

  onClipEvent (load) {

  a = random(140) 10;

  //当mc载入时,预设a变量。a变量是控制泡泡运动方向的,对a进行10到150之间的随机取值

  }

  onClipEvent (enterFrame) {

  if (this._x>a) {

  this._x = int(this._x)-1;

  this._y -= 1;

  this._alpha -= 0.01;

  if (this._alpha == 0) {

  this.unloadMovie();

  }

  } else if (this._xthis._x = int(this._x) 1;

  this._y -= 1;

  this._alpha -= 0.01;

  if (this._alpha == 0) {

  this.unloadMovie();

  //当透明度为0时,卸载泡泡

  }

  //以上两个执行语句中,第一句为this._x取整这一点很关键,因为假如不小心泡泡的x坐标不是整数,到最接近a的那一步时,x总是无法等于a,_x-1就小于a,会执行xa的语句,这也是我刚做时泡泡总是运行一次就直线上升的原因。

  } else {

  a = random(140) 10;

  }

  }//x=a时,对a重新取值

  第四步:回到场景,在第一帧上写如下代码

  j=0;

  //设定控制循环以便产生多个泡泡的变量 j

  第五步:在第二祯写如下代码

  _root.attachMovie("pp", "pp" j, j);

  //从库里复制泡泡

  _root["pp" j]._x = random(140) 10;

  //为泡泡设定x坐标值,这里是10到150之间的随机值

  _root["pp" j]._y = 200;

  //设定y坐标值

  _root["pp" j]._xscale = random(70) 30;

  //30%到100%的随机x缩放值_root["pp" j]._yscale = _root["pp" j]._xscale;

  //30%到100%的随机y缩放值

  第六步:第三祯代码如下

  if (j<10) {

  //这个判断为j赋最大值

  j = j 1;

  } else {

  j = 0;

  //当j=10时,j返回0值

  }

  gotoAndPlay(2);

  在最初做这个泡泡时,我没有为j设定最大值,让j不断累加,导致swf文档极占cpu资源,其实10个泡泡对于我做的这个出现频率就够了,j能够根据实际情况设定。

  好了,您也能够做个泡泡了,更有一点就是,我为了让泡泡不要出得这么频繁,让第二祯和第三祯之间隔了好些个空白祯,假如想多一些,挨近一点就行了。

  往上升是泡泡,假如往下飘能够做雨,雪什么的。试试看吧 :p

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!