首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 工具软件 > Flash实例制作:鱼翔浅底
【标  题】:Flash实例制作:鱼翔浅底
【关键字】:实例,Flash,Flash
【来  源】:网络

Flash实例制作:鱼翔浅底

  本实例完全依靠Action动作脚本语言来控制,主场景中没有任何对象,通过此实例,大家可以体验另一种Flash动画制作方法,如果和传统的手工制作结合起来,能起到相得益彰的作用。

  本实例效果如下所示:银色的鱼儿跟随鼠标在水中快活地游来游去。


图1


  下面我们就开始本实例的制作。

  1.首先启动Flash,新建立一个影片,并设置影片大小为384px*384px,影片背景色为深蓝色,颜色代码为#000066。

  2.因为整个影片是由Action动作脚本进行控制的,所以影片中所有要用到的对象都需要做成Movie clip电影剪辑,以便Action对其控制。影片中出现的鱼儿,我们把它分解为三部分,分别为鱼头,鱼鳍和鱼身。

  首先制作鱼头。新建一个Movie clip影片剪辑,取名为Cabeza,这里的取名很重要,因为在后面我们就需要使用符号的名字,在Action中对具体的对象进行控制。进入符号的编辑状态后,使用绘图工具绘制一个鱼头,可以使用矩形工具先绘制一个矩形,然后使用箭头工具对其进行调整,然后使用椭圆工具绘制两个眼睛,最后如图2所示:

图2

  3.鱼头做好后,接下来制作鱼鳍。再新建一个Movie clip电影剪辑,取名为Aletas,同样使用绘图工具绘制如图3所示的鱼鳍:

图3

  4.最后就要制作鱼身了,同样新建一个Movie clip影片剪辑,取名为Espina,使用绘图工具绘制图4所示的鱼身:

图4

  到此为止,所有的准备工作就完成了,接下来就是Actioin动作脚本的任务了。

  5.我们将使用Action对前面制作的鱼头、鱼鳍和鱼身分别进行控制,从而产生最终的鱼儿腾空的效果。

  回到主场景中,将图层layer1重命名为action,然后给第1帧添加如下Actioin:

  //此帧用来初始化所有Action中要用到的变量和数据
  _quality = "MEDIUM";

  // _quality为Flash中的一个属性,用来设置影片的播放质量。"LOW"呈现影片为低品质,不消除图形的锯齿,位图不进行平滑处理。"MEDIUM"呈现中等品质,使用 2 x 2 网格(以像素为单位)消除图形锯齿,但不对位图进行平滑处理。"HIGH" 呈现高品质,使用 4 x 4 网格(以像素为单位)消除图形锯齿,如果影片是静态的,则对位图进行平滑处理。这是 Flash 使用的默认呈现品质设置。"BEST" 极高呈现品质,使用4 x 4 网格(以像素为单位)消除图形锯齿,并且始终对位图进行平滑处理。

  N = 20; // 表示鱼儿的长度
  R = 12; // 鱼儿跟从鼠标的移动速度
  C = 2;
  A = 2;

  var x = new Array();
  var y = new Array();
  //定义x 、y两个数组,用来存储位置信息

  for (i=0; i<N; i++) {
    x[i] = 0;
    y[i] = 0;
  }
  //使用for循环语句对数组值进行初始化,所有数组元素初始值全部为0

  for (i=1; i<N; i++) {
    if (i == 1) {
      attachMovie("Cabeza", "Pieza"+i, N+1-i);
      //此句的作用是将第一个位置定义为鱼头,然后在主场景中设置一个代表鱼头的实例Pieza1.
      //attachMovie函数的使用方法为:attachMovie( idName, newName, depth [, //initObject] ),其中idName 为图库中要附加到舞台上某影片剪辑的影片剪辑元件的链接名称,也就是在建立影片剪辑时所取的名字。 newname 为附加到该影片剪辑的影片剪辑实例的唯一名称,depth为一个整数,指定影片所放位置的深度级别。initObject 一个包含属性的对象,这些属性可用于填充新附加的影片剪辑。此参数使动态创建的影片剪辑能够接收剪辑参数。如果 initObject 不是对象,则将被忽略。
    } else if ((i == 4) || (i == 14)) {
      attachMovie("Aletas", "Pieza"+i, N+1-i); //设置鱼鳍的实例,一共是2个
    } else {
      attachMovie("Espina", "Pieza"+i, N+1-i); //设置鱼身
    }

    this["Pieza"+i]._x = 142+x[i-1];
    this["Pieza"+i]._y = 142+y[i-1];
    //重新设置所有对象的坐标

    this["Pieza"+i]._xscale = 102+A*(1-i);
    this["Pieza"+i]._yscale = 102+A*(1-i);
    this["Pieza"+i]._alpha = 100-(100/N)*i;
    //设置新对象的大小和透明度属性。
  }

  6.同样的,给第2帧添加如下Action:

  // 此帧的作用是移动第一帧复制出的鱼头,鱼鳍和鱼身,从而使整条鱼移动起来

  x[0] = x[0]+(_xmouse-x[0]-142)/R;
  y[0] = y[0]+(_ymouse-y[0]-142)/R;
  //使鱼头跟随鼠标移动

  for (i=1; i<N; i++) {
    x[i] = x[i]+(x[i-1]-x[i])/C;
    y[i] = y[i]+(y[i-1]-y[i])/C;
  }
  //使鱼鳍和鱼身跟随鼠标移动

  for (i=1; i<N; i++) {
    this["Pieza"+i]._x = 142+(x[i-1]+x[i])/2;
    this["Pieza"+i]._y = 142+(y[i-1]+y[i])/2;
    this["Pieza"+i]._rotation = 57.295778*Math.atan2((y[i]-y[i-1]), (x[i]-x[i-1]));
  }
  //动态更新鱼头、鱼鳍和鱼身的坐标以及方向

  7.最后,给第3帧添加如下Action:.

  gotoAndPlay(2);
  // 返回上一帧,使鱼儿不停的运动

  到这一步,我们的鱼儿就畅游在水中了。本实例的关键在于完全抛开了“符号制作+组织场景”的动画制作模式,而是采用了“符号制作+Action脚本控制”的模式,同样起到了应有的效果。所以在日常的Flash影片制作中,大家可以多常识一下不同的制作模式和思路,有助于提高工作效率,而且效果毫不逊色。原文件下载学习

会变身的蛇:【上一篇】
Flash制作函数曲线课件:【下一篇】
【相关文章】
  • 用Flash模拟机械节拍器
  • 用Flash做奇妙的旋转导航条
  • 用Flash MX打造逼真打火机
  • Flash MX 轻松制作旋转啮合齿轮
  • Flash螺旋特效实例剖析
  • 用Flash记录鼠标运动过程
  • 用Flash制作互动火焰效果
  • 用Flash实现几种镜头效果
  • Flash中背景变色及其实现技巧
  • Flash AS实例:奇妙的滑动菜单
  • 【随机文章】
  • 最袖珍的垃圾回收器
  • 散列学习笔记
  • Python函数的分阶段参数传递
  • Maya UV 编辑实例系列(11)定制检测UV纹理的贴图
  • Struts 用户指南(2)
  • 关于import/Export 命令在oracle中的应用
  • [FreeBSD5.4下packages的安装]
  • 使用Outlook过滤电子邮件
  • 破解Winamp V2.05
  • MPLS在IP/WDM网络中的应用研究
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.