Flash制作粉嫩的花瓣随风舞动

所属分类: 媒体动画 / Flash教程 阅读数: 88
收藏 0 赞 0 分享
点击这里返回Flash教程栏目。   知识点:
  a、渐变色,形变动画的应用。
  b、元件的as标识符。
  c、attachMovie的应用。
  d、movieClip的各项属性的使用。
  e、滤镜的应用。

点击开新窗口欣赏该FLASH动画![全屏欣赏]

<  应用分析:
  本题最初是帮助朋友做一个视觉效果,做一朵花开放的效果出来。分析一下,花是由一片片花瓣组成,做完每一片花瓣的伸展动画,然后复制若干个这个动画,让其环绕一圈播放,那么就可以形成一层花瓣绽放的效果,然后做多层这种效果,最终就可以形成一朵花的效果。注意必须使用flash8.0以上的播放器。

  那么问题很简单,首先要做花瓣。

  建立一个空MC,命名为"huanban01",用钢笔工具画一个花瓣,注意花瓣的轮廓要使用绿线,而花瓣内要使用中心渐变色填充。花瓣的大小控制在长度100象素左右。注意该花瓣元件的定义点中心应该在花瓣的根部。(这是为了将来复制的时候,花瓣可以根部为中心进行环绕)参见图pic01.jpg:
  


  在1-30帧之间,做一个花瓣伸展的动画,其实就是在第1帧把花瓣缩小,然后用形变动画让其放大。参见图pic02.jpg:



  在30-160帧之间,做一个花瓣轻微舞动的效果,也很简单,只是让花瓣的外形稍微有一点变化即可。你也可以做的长一些,比如30-400帧之间,多做几个关键帧。在最后一帧上加上as:

  gotoAndPlay(30);
  这样,花瓣在轻微舞动之后会跳回到30帧继续舞动,这样一个花瓣便完成了,你可以把这个元件拖到场景中,观看一下播放效果。

  每个花瓣的形状不可能一样,因此,我们有必要多做几个花瓣,你可以重复上述步骤,做出"huanban02","huanban03",让它们的外形和"huanban01"有所区别,轻微舞动的频率也有所区别。

  接下来一步,我们需要把元件库里的这几个花瓣加上标识符,以便将来调用。元件库里鼠标右键点元件"huanban01",在菜单里选择"链接...”,弹出对话框,勾选“为actionscript导出”,“在第一帧导出”,然后在标识符一栏里写上"huanban01",点确定。参见图pic03.jpg:
  


  "huanban02","huanban03"一样加上标识符。注意元件的标识符是唯一的,不可重复,每一个元件加上标识符之后,运行时就可以将他们随时调用出来使用了。

  下面需要做一层花瓣,新建一个MC,命名为“花瓣层1”,帧上大概参见图pic05.jpg:



  在第1帧里写上:

  quan=random(3) 10;
  n=1;
  quan这个变量是用来计算该层花瓣一共有多少个,如果写quan=10,那么该层花瓣就一共有10片,random(3)是一个随机函数,它的作用是随机生成0-2的随机整数,那么quan的实际值应该为10-12的随机整数。n=1,是计数器,不赘述。在第2帧里写上:


  for (i=1;i<=quan;i ) {
   temp=random(3) 1;
   this.attachMovie("huaban0" temp,"huaban" n,n)
   lik=this["huaban" n]
   lik._rotation=360/quan*i random(10)-5;
   lik._alpha=random(10) 60;
   lik._xscale=random(20) 100;
   lik._yscale=random(20) 100;
   temp=random(2);
   if (temp==0) {
   lik._yscale=-lik._yscale;
   }
   n
  

  }
  this.attachMovie("huaban0" temp,"huaban" n,n) 的作用就是随机从库里抽出"huaban01","huaban02","huaban03"元件,命名为,"huaban" n的实例,复制到本元件内
  lik=this["huaban" n]是用lik变量锁定该复制的实例,方便后面操作。
  lik._rotation=360/quan*i random(10)-5; 的作用就是把花瓣环绕分布, random(10)-5的目的是为了让花瓣的旋转角度有一定偏差,不至于太平均。
  lik._alpha=random(10) 60;的作用是让花瓣的透明度在60-70之间取随机值。
  lik._xscale=random(20) 100;的作用是让花瓣的长度在100%到120%之间取取随机值。
  lik._yscale=random(20) 100;的作用是让花瓣的宽度在100%到120%之间取取随机值。
  temp=random(2);
  if (temp==0) {
  lik._yscale=-lik._yscale;
  }
  以上语句的作用是随机让花瓣以中轴进行翻转。n ;计数器 1。在第90帧写上:

  stop();
  如此,该层花瓣已经完成,可以把该MC拖入场景,观察效果

  花是由多层花瓣组成的,因此,有必要多做几个,可以把上面“花瓣层1”元件复制若干个,修改其中的参数,让其生成花瓣的数目,长短,透明等等有一定区别。分别拉入场景

  源文件下载: test05.rar

  此时,基本已经完工。下面需要做的是组装花朵。新建一个MC,命名为“花”,按下图所示,分别将几个花瓣层组件分配到不同的层中,将他们叠放在一起。最后在最上层放一个中心点。(你也可以放一个花蕊什么的)参见图pic04.jpg:



  将本元件拖入场景总,播放,效果大致如test06.swf所示:

  源文件下载: test06.rar

  这时的花看起来还比较平面化,缺少细节,因此,我们需要给花增加效果,让其看起来更丰富。首先进入“花”组件中,给每一层花瓣都增加两种滤镜,分别是投影和发光。大致的设置如下。参见图pic06.jpg,pic07.jpg:





  然后,进入场景中,给“花”组件也增加一种滤镜“调整”颜色,大致设置如下。参见图pic08.jpg:



  经过这样一改,花朵的效果就丰富很多了,大致效果如test07.swf所示:

  源文件下载: test07.rar

  教程后思考题:
  1、为什么非要在每一个“花瓣层”上增加投影和发光,如果只在“花“组件上增加这两种滤镜,效果会如何?
  2、有没可能再做一花瓣凋零的效果?
  3、如果想做花蕊,可不可以用类似的方法来做?

更多精彩内容其他人还在看

FLASH CLASS的基本编写规范

继续回来写教程。本来不想写这节的,因为这节的内容很多书上或者网上资料都有,而且写的比我要详细正规得多。但后来想想,还是写吧!为啥?凑篇幅呗~啊哈哈~而且后面几节要结合接宝的范例游戏,具体分析它的几个CLASS,所以,还是用一节把CLASS的写法说一下。可能我对CLASS
收藏 0 赞 0 分享

flash教程:使用拆分数字和文字的函数

flash的小函数:拆分数字和文字的函数. 以下为引用的内容: /* * 拆分数字和文字 */ public function splitNS(s:String):Object{ var tNum:String=""
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例六

相关文章: 通过实例学习Flash AS3.0——案例五 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

用Flash AS制作逼真的下雨动画效果

Flash教程:用Flash AS制作逼真的下雨动画效果 先看下效果:(附.swf文件) 制作过程 一、新建一图层,大小随意; 二、新建元件(影片剪辑): 1、制作雨滴并下落。使用直线工具(颜色设为灰色,1像素)画一短直线,使用选择工具将直
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例五

相关文章: 通过实例学习Flash AS3.0——案例四 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

Flash CS3制作Fla形式的组件

  本文为大家介绍如何制作Flash CS3中的[*.fla]形式的的组件(Component)。这种组件和SWC组件不同,它和CS3自带的组件一样能够双击进入组件里面编辑,是Flash CS3新增加的一种组件形态。下面我们制作一个MyButton组件为例子。   制作步骤:
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例四

相关文章:通过实例学习AS3.0——案例三 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
收藏 0 赞 0 分享

通过实例学习flash AS3.0——案例二

相关文章:通过实例学习AS3.0 --案例一 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢
收藏 0 赞 0 分享

通过实例学习AS3.0——案例三

相关文章:通过实例学习flash AS3.0——案例二 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知
收藏 0 赞 0 分享

通过实例学习AS3.0

首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。 下面进入正题:
收藏 0 赞 0 分享
查看更多