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

Flash动画制作
巧用超级解霸在Flash V5.0中插入录像
教你用Flash MX来制作简单的课件界面
Flash MX 2004 ActionScript图文教程(二)
Flash MX 2004 ActionScript图文教程(三)
Flash MX 2004 ActionScript图文教程(四)
Flash MX 2004 ActionScript图文教程(五)
Flash MX 2004 ActionScript图文教程(六)
flash场景之间相互跳转的实现方法
Flash本地加密
FLASH -- 关于变量的问题FLASH -- 关于变量的问题
Flash5 画任意直线教程
Flash MX 视频导入功能详解
制作飞舞的蝴蝶
Flash MX 2004 ActionScript图文教程(七)
Flash MX 2004 ActionScript图文教程(八)
Flash MX 2004 ActionScript图文教程(九)
Flash MX 2004 ActionScript图文教程(十)
Flash教程 飞翔的文字
Flash MX 2004 ActionScript图文教程(十一)
制作Flash网站技巧拾零

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


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