当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > 制作别致的Flash圣诞贺卡(3)

Flash动画制作
Flash实例教程:用AS3代码表现倾斜角与斜率
Flash实例教程:用AS3代码制作交互式3D旋转动画效果
Flash cs3仿真艺术设计5.6:图形元件的同步与不同步
Flash cs3仿真艺术设计5.7:图形元件的同步应用
Flash cs3仿真艺术设计5.8:铰连身体部分
Flash实例教程:用AS2代码制作图片循环效果
Flash实例教程:AS3代码简单表现照片底片效果
Flash cs3仿真艺术设计5.9:关闭缺口_完善角色肢体连接
Flash入门实例教程:图片不间断滚动动画效果
Flash AS2实例教程:鼠标感应放大缩小图片效果
Flash AS3实例教程:鼠标跟随炫舞线条动画效果
Flash AS2实例教程:制作360度全景动画效果
Flash cs3仿真艺术设计5.10:位图动画的表现
Flash cs3仿真艺术设计5.11:导入PSD文件
Flash AS3基础教程:物理基础之速度向量(Velocity)
Flash AS3.0菜鸟学飞教程:帧循环学习实例
Flash MX 视频导入功能详解(6)
Flash教程:视频导入与编辑
Flash cs3仿真艺术设计5.12:运动引导层制作布什搞笑动画
Flash cs3仿真艺术设计5.13:人物行走动画制作技巧

Flash动画制作 中的 制作别致的Flash圣诞贺卡(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 28 ::
收藏到网摘: n/a

三、Action Script控制

  好了,现在最关键的步骤来了。先具体说一下这个效果的实现原理:我们先用目标点摆一个图案,然后在影片播放的时候动态生成一些星星,给这些星不同的目标点,让它们飞向各自的目标点,最后就组成我们摆好的图案了。怎样归定每颗星的目标点呢?我们可以在每个星的影片剪辑里设一个变量,在星生成的时候给这个变量赋值,然后在星运动时就可以用eval("z"+num)的形式组合出这颗星的目标点的名字了(这也是为什么我们的目标点开始要那么命名的原因)。至于怎么让星飞过去的程序嘛,其实早就有了,记得广为流传的鼠标根随脚本么?这里只是将目标点由鼠标坐标处改成了我们自己的目标点而已。

  明白了吧?那么你可以自己尝试着写啦。如果你还是觉得一头的雾水,请看下面的源码。关键地方已经有了详细的注释。

  1.点击“action”影片剪辑,在Action面板中写入如下的代码:

  onClipEvent (load) {   //在影片调入时初始化一些必要的变量
    count = 1;  //当前星星的编号
    maxcount = 400;   //影片中最大允许出现的星星个数  
  }
  onClipEvent (mouseMove) {
    if (count<maxcount and (Math.random()*5)<1) {
      //以一定机率生成星星及限定星星个数
      duplicateMovieClip(star, "star"+count, count);
      if (count<=60) {  //星星数目仍小于目标点个数时
        eval("star"+count)._xscale = eval("star"+count)._yscale=100;
        eval("star"+count).active = true;
        eval("star"+count).mytarget=count; file://设定目标
      } else {  //星星超过目标点个数的话生成的星星就不会动,而且比原来的小。
        eval("star"+count)._xscale = eval("star"+count)._yscale=50;
        eval("star"+count).active = false;
      }
      eval("star"+count)._x = _xmouse;   //星星出现在鼠标所在位置
      eval("star"+count)._y = _ymouse;
      count++;   //记数器加
    }
  }

  2.点击“action”中的“star”,在Action面板中写入如下的代码:

  onClipEvent(enterFrame){
    if(realactive){
      //星星是否仍允许运动,realactive来源请看下面一条(3)
      xm=eval("_parent.z"+mytarget)._x-_x; file://运动
      ym=eval("_parent.z"+mytarget)._y-_y;
      _x+=xm/10;
      _y+=ym/10;
      if(Math.abs(xm)<0.5 and Math.abs(ym)<0.5)
         realactive=false;   //基本到达目标点后停止运动
    }
  }

  3.编辑“star”影片剪辑,插入ActionScript如下:

  realactive=active;

  这样做的目的就是让星星在原地停留一会儿(也就是影片播放到40帧以后)再向目标点运动。

  好了,大致的制作过程就是这些了。你还可以加入更多的效果使影片更加完善,比如:加入文字的动画效果(参看源文件),或是增加通过随机函数增加星星动作的随机性等等,一切你自己发挥啦。然后,在圣诞前夜,给心仪的MM发去这样的一张贺卡,然后,你就只管偷着乐吧!源文件下载