操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数据库 办公软件 路由技术 网络原理 网络架设 网络管理 认证培训
您的位置:计算机资讯网 >> 媒体动画 >> Flash >> 实例技巧 -> 91.用Flash MX制作飞舞的蝴蝶
91.用Flash MX制作飞舞的蝴蝶
2004-10-14 08:23:11
>

  MacroMedia公司的Flash MX刚推出不久,相信好多朋友最近都在学习MX中的一些新增功能,我也和大家一样,一直在研究MX的新特性以及和Flash5的区别,顺便结合MX的新特性做了一些精彩实例,下面的这个实例是一群蝴碟飞舞的效果,其中使用了一些MX的新功能,现在就让我们看看具体如何来制作。

  首先需要一张静态的蝴碟的图片,大家可以从本文最后提供的源文件中得到,也可以自己动手制作,至于工具吗,那可太多了,不过我建议大家使用Fireworks,毕竟我们可以直接在MX中导入FW生成的文件。


当鼠标从画面划过,蝴蝶就会跟随您的鼠标翩翩起舞


  先来制作蝴蝶翅膀震动的动画,在影片中新建一个MovieClip组件,起名为butterfly.然后从图库中把已经导入的蝴蝶的图片拖到组件butterfly的编辑区中,如图1所示:


图1
  然后在图层1的第六帧插入一个关键帧,这时我们就要用到MX 新增的Free Transform Tool(自由转换工具) 了,选取Free Transform Tool以后,在点一下编辑区中的蝴蝶,这时候蝴蝶四周会出现8个调节手柄,如图2所示:

图2
  我们通过这些手柄来调节蝴蝶的翅膀的形状,使两个翅膀向里翻,但是翻的幅度不要过大,否则看上去就会不自然的,如图3所示:


图3
  接着在第9帧也插入一个关键帧,还是使用Tree Transform Tool工具,继续调整蝴蝶的翅膀,使其继续向内翻,如图4所示:


图4

  最后将图层1延续到第12帧,这段简单的蝴蝶翅膀震动的效果就做好了。

  接下来我们就要让蝴蝶飞起来了。

  接下来我们就要让蝴蝶飞起来了。我们再新建一个Movie Clip组件,起名为fly,在fly组件编辑区中,用鼠标右键点击图层layer1,在弹出的菜单中选择Add Motion Guide命令,添加一个引导层,如图5所示:

图5

  然后在引导层layer2上画一条弯曲的线,绘制蝴蝶飞舞的路径,绘制的时候选择straighten方式 , 然后利用次选工具 进行调节,这时候我们发现flash mx的次选工具的功能加强了 ,当你选择任一个点时都能够轻松的对线段的弧度进行调节,弯曲度可以自己掌握,最好看上去象真正的蝴碟的飞行路径就可以了,如图6所示:

图6

  然后选择图层layer1,将组件butterfly从图库中脱到图层layer1中,并且将butterfly组件定位到引导线的一个端点,作为飞行的开始点,大家注意一定要先将flash的吸附功能打开,方法是点一下工具箱中的吸附按钮 ,这样才能使引导线起作用。如图7所示:

图 7

  然后分别在图层layer1的第6,13,21,30帧建立关键帧,将蝴蝶定位到引导线的不同位置,最后分别建立motion tween移动过渡,然后也可以接着复制几只蝴蝶 ,对蝴蝶的飞舞方向进行适当的调节,这时候就使用到了flash mx的新增工具 Free Tramsform Tool,减轻了以前制作过程中对object的大小角度调节的工作强度,这样,蝴蝶的飞行动画也做好了。最后时间轴如图8 所示;

图8

  接下来就是要进行as的编写,对组件fly进行控制,以产生随机出现的飞舞的蝴蝶。

  接下来就是要进行as的编写,对组件fly进行控制,以产生随机出现的飞舞的蝴蝶。

  在Flash MX中写as,比flash5多了一个很有用的辅助功能,就是我们在写入ActionScript时,可以对程序的行进行编号,这样就方便了多人团体合作时对程序的调试和维护,如图9和图10所示:

图9

图10
  我们在新建立一个mocie clip组件,起名为action,在这个组件中,我们来编写控制动画的核心as,首先在组件中新建立一个图层layer2,然后将组件fly拖到图层layer2中,将时间轴延续到第八帧,如图11所示:

图11

  然后打开Properties面板,给fly组件取实例名为bb,如图12所示:

图12

  在图层layer1的第一帧中添加一下代码:

  Count = 0;
    //设置一个记数器,并赋初值为0
  OldY = _ymouse;
    //取得鼠标的y坐标值
  OldX = _xmouse;
    ////取得鼠标的x坐标值

  在图层layer1的第3帧插入一个关键帧,添加一下代码:

  MouseX = _xmouse;
    //再次取得鼠标的x坐标值
  MouseY = _ymouse;
    //再次取得鼠标的y坐标值
  if ((Number(OldX)<>Number(Mousex)) or (Number(OldY)<>Number(MouseY))) {
    //如果新旧坐标值不相等,则执行下面的代码
  duplicateMovieClip("bb", "bb" add Number(Count), Count+850);
    //复制电影剪辑bb
  setProperty("bb" add Number(Count), _x, MouseX);
    //设置复制出的对象的x坐标
  setProperty("bb" add Number(Count), _y, MouseY);
    //设置复制出的对象的y坐标
  setProperty("bb" add Number(Count), _rotation, random(360));
    ////设置复制出的对象的角度
  Count = Count+1;
    //记数器加一
  if (Number(Count)>7) {
   Count = 0;   //最多复制七个
  }
  }

  同样在图层layer1的第6帧也插入一个关键帧,添加一下代码:

  OldX = _xmouse;
    //保存以前的鼠标的x坐标值,以为以前的值要和新的值进行对比
  OldY = _ymouse;
   //保存以前的鼠标的y坐标值
  gotoAndPlay(3);
    //循环执行核心代码

  最后将图层layer1的时间线延续到第8帧,最后的时间线如图13所示:

图13

  回到主场景中,将组件action拖到主场景中,这样我们制作的蝴蝶飞舞就完成了,虽然制作起来不是很复杂,但是看起来蛮漂亮的,大家可以在学习的过程中继续寻找MX的新特点,结合自己的知识来制作一些实例,既锻炼了自己的水平,也可以与别人交流经验,岂不是一举两得吗。 源文件下载


 

 

转自:不详 作者:未知 关闭
加入收藏 推荐给好友 打印本文
内容为网上收集,并不代表本站同意或者赞同其观点,如果有任何版权,内容问题,请联系本站,我们将在第一时间处理.
查询
关键字
搜索范围
热点专题
服务
计算机资讯网 | 联系方式 | 广告服务 | 意见留言 | 友情链接 | 网站地图 | 设为首页