当前位置: 秒速时时彩 > 综合资源 > 课件制作 > 正文

制作实例:Flash 制作烟火效果

[ 作者:佚名 文章来源:转载 更新时间:2007-1-22 14:46:16| 收藏本文 ]
在线投稿】【信箱投稿([email protected])】 【背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #FFFFFF 默认 字号:
烟火效果


  大家在制作flash动画的时候为了表现情节,渲染气氛,难免会遇到很多特殊效果的制作。下面我就结合自己的经验来谈谈如何制作逼真的烟火效果。

制作原理:

  利用photoshop或者其它位图工具制作出一张静态的烟雾(或火焰)图片,在fireworks中对图片进行加工,将其处理为透明的png图。再将 png导入到flash中做最后的处理。使用png 的原因在于它具有优秀的透明属性,不象gif图形格式只有透明和不透明的选择,在导入到flash中之后不会出现烦人的毛边。

制作步骤:

  首先使用图形软件制作一个火焰效果,如果您对photoshop不是很熟悉,制作上有困难的话,可以使用ulead公司的Photoimapct软件,其内置了数钟火焰滤镜,只需几个简单的操作就可得到满意的效果。以photoimpact6.0为例,在photoimpact中新建200*200背景色为黑色的新文件(如图一)。



  在百宝箱中选择partical gallery——fire,右键单击想要的效果,在弹出菜单中选择modify properties and apply,打开partical面板,在这里我们可以调整火焰的属性,将density调整为1,(如图二)点击ok。将这张图形输出成psd格式。



  同样再新建新文件,在百宝箱中选择partical gallery——smoke,右键单击想要的效果,在弹出菜单中选择modify properties and apply,打开partical面板,在这里我们可以调整烟雾的属性,将density调整为18,(如图三)点击ok。将这张图形输出成psd格式。



  在fireworks中打开火焰的图片,使用魔术棒工具选择黑色的背景色,按del键删除。(如图四)将图形保存为png格式,使用同样的方法处理好烟雾的图片。



  最后打开flash,新建一个高200,宽200背景色为黑色的文件,file-import将图导入。新建元件“烟”与“火”windows- library打开library面板,分别将烟图片和火图片拖拽到“烟”元件与“火”元件中,windows-pannel-align打开align 面板,设置其居中对齐。

  新建元件命名为“火动画”,从library中拖拽“火”到layer 1,分别在第5、10、15、20帧建立关键帧。单击第一帧,在frame面板中设置name属性为“a0”,单击第5帧,在frame面板中设置 name属性为“a1”,单击第10帧,在frame面板中设置name属性为“a2”。使用scale与rotate调整每一关键帧上元件的大小与位置,并且在effect面板中调整各元件的颜色与透明度。在各关键帧之间分别建立motion动画。(如图五)



  新建元件命名为“as火动画”,将“火动画”拖拽到layer 1,在instance面板中给它命名为“fire”。双击第一帧,在弹出的actions面板中输入如下as:
  i = 0;
  a = random (3);
  setProperty ("fire", _visible, "0");
  while (i<10) {
   duplicateMovieClip ("fire", "fire" add i, i);
   //当I<10时复制mc
   setProperty ("fire" add i, _x, random (50));
   setProperty ("fire" add i, _y, random (30));
   //使用random函数取随机数,设置复制出的mc的x、y坐标
   setProperty ("fire" add i, _xscale, random (50)+50);
   setProperty ("fire" add i, _yscale, random (50)+50);
   //设置复制出的mc的宽与高
   setProperty ("fire" add i, _alpha, 70+random (30));
   //设置复制出的mc的透明度 
   setProperty ("fire" add i, _rotation, random (50));
   //设置复制出的mc的旋转角度
   tellTarget ("fire" add i) {
    gotoAndPlay ("a" add random (3));
   }
   //利用随机数决定从mc的什么位置开始播放
   i = number(i)+1;
  }

语法说明:

  duplicatemovieclip,当动画正在播放时复制一个movie clip。复制出的moveclip与被复制的movieclip完全一样,并从第一帧开始播放。
  语法:
  duplicatemovieclip(target,newname,depth)
  参数
  target:要复制的movieclip的路径与名称
  newname:复制出的movieclip唯一的名称
  depth:景深

  random()函数:random在actionscrip中是一个应用相当广的函数,它的作用是获取0到指定整数之间的任意整数。利用它,我们可以解决随机显示,随机移动等一系列的效果。是复杂动画的基础,对random函数的灵活应用,是我们解决很多实际问题,创造奇妙效果的前提。我们来看看它的语法:
  random(value);
  参数
  value:所生成随机整数的上限
  实例
  random(4)所返回值可能为0,1,2,3

  setProperty,在movieclip播放时设置其属性。语法:
  setProperty(target,property,expression)
  参数
  target:要设置属性值的movieclip的路径与名称
  property:待设置的属性
  expression:待设置的属性值
  实例
  setProperty("xxx",_x,100)
  将xxx的x座标设为100

  值得注意的是最后telltarget的使用,为什么要使用随机函数实现帧间跳转呢?这么做的目的是为了使复制出的mc的颜色不完全相同,才能表现出火焰的随机性。

  下面开始制作烟雾效果,新建元件“烟动画”从library中拖拽“烟”元件到layer 1,分别在第5、10、15、20帧建立关键帧。单击第一帧,在frame面板中设置name属性为“b0”,单击第5帧,在frame面板中设置 name属性为“b1”,单击第10帧,在frame面板中设置name属性为“b2”。使用scale与rotate调整每一关键帧上元件的大小与位置,并且在effect面板中调整各元件的颜色与透明度。在各关键帧之间分别建立motion动画。新建元件命名为“as烟动画”,将“烟动画”拖拽到 layer 1,在instance面板中给它命名为“smoke”。双击第一帧,在弹出的actions面板中输入如下as:

  k = 70;
  b = random (3);
  setProperty ("smoke", _visible, "0");
  while (k<75) {
   duplicateMovieClip ("smoke", "smoke" add k, k);
   setProperty ("smoke" add k, _x, random (50));
   setProperty ("smoke" add k, _y, random (30));
   setProperty ("smoke" add k, _xscale, random (30)+70);
   setProperty ("smoke" add k, _yscale, random (30)+70);
   setProperty ("smoke" add k, _rotation, random (50));
   tellTarget ("smoke" add k) {
    gotoAndPlay ("b" add random (3));
   }
   k = number(k)+1;
  }

  完成了烟雾的制作。最后回到scene 1,从library中将“as火动画”与“as烟动画元件”拖拽到舞台,调整位置与大小就最终完成了作品。(如图六)



  我们大量使用随机函数的目的是在于准确的表现烟火这一特殊效果的不确定性,有时浓烟滚滚,有时几缕青烟,红黄的火苗交替出现不正象我们平常所见到的么。但凡自然界中的景象都有自身的随机性,也就是不确定性,因此在模仿这些效果的时候如何使用好random函数是值得大家好好考虑的问题。



[点击关键词在7C教育资源网搜索更多关于制作实例的教学资源]
■文章录入:admin    责任编辑:admin 
澳洲幸运8 德国时时彩 欢乐生肖 吉林快3代理 极速快乐8 大乐购彩票计划群 澳洲幸运10开奖结果 湖北快3开奖 上海时时乐 幸运飞艇官网