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

Flash动画制作
赤手空拳下载Flash
创建一个Flash站点的十大技巧
用Flash制作Google搜索程序
枫桥夜泊下 遮罩效果的动态文本
Flash MX 2004 ActionScript图文教程(十二)
Flash实例教程 扫描文字效果
Flash MX 2004 ActionScript图文教程(十三)
快速制作您的flash图表
Flash MX 2004 ActionScript图文教程(十四)
Flash实例教程 变幻的字母
Flash MX 2004 ActionScript图文教程(十五)
Flash实例教程 相约北京 扬帆青岛
Flash教程实例 光线特效文字
Flash课件实例 画正多边形
Flash课件实例 平行四边形法则
Flash实例教程 小孔成像课件
精简Flash文件体积七法
Flash教程实例:水中浮动的文字
金鸡贺岁!Flash制作鸡年新春动画贺卡
Flash MX 2004新特性实例学习一

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 44 ::
收藏到网摘: 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发去这样的一张贺卡,然后,你就只管偷着乐吧!源文件下载