当前位置:软件学习 > Flash >>

用Flash制作漂亮的变幻线

这是一个比较简单的actionscript实例教程,但是效果很不错,发挥一下你的想像力,可以在这个基础上创建更cool的视觉效果。让我们先看看实例,文章末尾提供.fla源文件下载学习。


  实现原理:

  先做一个有色彩变化的movieclip,再利用duplicateMovieClip复制movieclip,用setProperty决定复制出的movieclip的位置,并用隔一帧执行一次复制以及变量的累加来实现移动效果。

  本例重点语法:

  duplicatemovieclip,当动画正在播放是复制一个movie clip。复制出的moveclip与被复制的movieclip完全一样,并从第一帧开始播放。
  语法:
  duplicatemovieclip(target,newname,depth)
  参数
  target:要复制的movieclip的路径与名称
  newname:复制出的movieclip唯一的名称
  depth:景深

  setProperty,在movieclip播放时设置其属性。
  语法:
  setProperty(target,property,expression)
  参数
  target:要设置属性值的movieclip的路径与名称
  property:待设置的属性
  expression:待设置的属性值
  实例
  setProperty("xxx",_x,100)
  将xxx的x座标设为100

  if条件语句,检验条件并决定下一个将要执行的操作。如果条件为真,则执行if{}中的语句,否则不执行。
  语法:
  if(condition){
  statement;
  };
  参数:
  condition:条件表达式,值为真或假。
  statement:当执行if语句或检验条件为真的内嵌语句。

  本例完成步骤:

  新建文件,设置文件宽、高均为300,背景色为黑色。
  insert/new sysmbol 建立新的元件sysmbol 1,用方型工具,画一个无边框的红色矩型,window/panels/info 在弹出的info面板上设置其宽为15.0,高为1。
  insert/new sysmbol建立新的movie clip元件sysmbol 2,从library中拖拽sysmbol 1到sysmbol 2的layer1层。分别在第10,20,30帧建立关键帧,单击第10帧,window/panels/effect 在弹出的effect面板中设tint color为黄色,单击第20帧,window/panels/effect 在弹出的effect面板中设tint color为浅蓝色,单击第30帧,window/panels/effect在弹出的effect面板中设tint color为深蓝色。
  分别在第1/10,10/-20,20/30帧建立动画。
  在第50,70帧新建关键帧,单击第70帧,window/panels/effect在弹出的effect面板advaced中设alpha=-100%,从第50帧开始建立动画。回到scene 1,双击第1帧,在弹出的action面板上输入如下actions:

  a = 50;
  b = 50;
  a1 = 250;
  b1 = 50;
  a2 = 100;
  b2 = 100;
  i = 1;
  j = 101;
  这里声明了一些变量并赋初值。

  在第2帧建立关键帧,从library中拖拽sysmbol 2到这一帧,命明为xz,双击第2帧,在弹出的action面板上输入如下actions:

  if (i<100) {
  ///i已被设初值为1,1<100,因此将执行以下actions。
  duplicateMovieClip ("/xz", "xz" add i, i);
  ///复制名字为xz的元件为xz add i
  setProperty ("xz" add i, _x, a+2);
  ///设置复制出的xz add i元件的x座标为:a+2
  setProperty ("xz" add i, _y, b+2);
  ///设置复制出的xz add i元件的y座标为:b+2
  setProperty ("xz" add i, _rotation, c+5);
  ///设置复制出的xz add i元件的旋转角度为:c+5
  a = getProperty ("xz" add i, _x );
  ///将xz add i的x座标赋值给变量a
  b = getProperty ("xz" add i, _y );
  ///将xz add i的x座标赋值给变量b
  c = getProperty ("xz" add i, _rotation );
  ///将xz add i的x旋转角度赋值给变量c
  }
  if (j<200) {
   duplicateMovieClip ("/xz", "xz" add j, j);
   setProperty ("xz" add j, _x, a1-2);
   setProperty ("xz" add j, _y, b1+2);
   setProperty ("xz" add j, _rotation, c+5);
   a1 = getProperty ("xz" add j, _x );
   b1 = getProperty ("xz" add j, _y );
   c1 = getProperty ("xz" add j, _rotation );
  }

  在第3帧建立关键帧,双击第3帧,在弹出的action面板上输入如下actions:

  i = Number (i)+1;
  j = Number (j)+1;
  gotoAndPlay (2);
  ///完成循环

  技巧提示:

  我们设立了一个循环,但此循环并不在一帧内完成,而是有一帧的延迟,(从第2帧到第3帧再到第2帧的循环)。这样,我们就能作出movieclip一个接一个出现并永不终止的效果。也才能实现各个movieclip不同时间开始播放。.fla源文件下载学习

【责任编辑:Shiny

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,