Flash的流程控制和循环控制语句

2008-04-02 10:59:54来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  众所周知,flash中动画依靠的是时间轴,在没有脚本的情况下,动画会依照时间轴从第一帧不停的播放到最后一帧,然后始重复播放或干脆停止。为了能更好的控制动画,就必须使用脚本语句。而要想使动画具备逻辑判断的功能,就要使用流程控制和循环控制语句了!下面通过几个简单的小例子来学习流程和循环控制语句。

  一、流程控制语句

  所谓流程控制,无非就是我们想控制动画程式的执行顺序而已。我们能够让flash根据一些特定的条件,来决定要执行哪个程式。这样就好象给了程式一些判断的机制。

  if...else控制语句

  根据英文的意思,大家能够简单的理解上面的控制语句:假如...就...否则...就...

  下面来看看这个流程控制语句的书写格式。

  if(条件){

  //条件成立的话,就执行这里的程式。

  }else{

  //条件不成立的话就执行这里的程式。

  }

  下面重点说一下if后面括号内的条件。这个条件能够是个固定的值,也能够是个变量或表达式。假如条件成立的话,也就是条件为真(true),就会执行if后面的程式,假如条件不成立,也就是条件为假(false),就会执行else里的程式。例如:有这么一个条件,A>B 将这个表达式代入if后面的括号内,这个流程语句的意思就变成:假如A>B的话,就执行第一个大括号内的程式,假如A不大于B,就将执行else后面大括号内的程式。

  实例讲解:

  1、新建一个flash文档,在舞台上绘制一个圆,选中圆并按F8转换成影片剪辑,起名为:圆

  这样就在舞台上创建一个圆的实例。

  


  2、选中舞台上的实例,按F9打开动作面板,输入如下脚本:

  onClipEvent (enterFrame) {

  if (this._x<400) {//流程条件控制语句,假如这个圆的实例的X轴坐标小于400,就执行后面的程式。

  this._x = 5;//让这个圆的坐标向右移动5个象素

  } else {

  this._x = 0;//控制语句,假如刚才的条件不成立。也就是圆实例的X坐标不小于400,就让他的X坐标为0

  }

  }

  脚本最终编写效果如图:

  


  上面的脚本是个很简单的流程控制语句,根据实例的坐标来进行判断。因为我们使用了enterFrame事件,所以flash会不停的执行下面if...else语句。

  3、测试影片。会看到圆不停的向右移动,当他的X坐标大于或等于400的时候,程式会把他的X坐标重新更改为0。

  二、循环控制语句

  所谓的循环语句,其实也是用条件来控制的,只要条件成立,那么,程式就会不停的执行下去,一直执行到条件不成立为止!常用的循环语句包括while循环、for循环等。因为篇幅有限,下面只重点讲解for循环的使用方法。

  FOR循环命令格式:

  for(初始变量;条件语句;迭加命令语句){

  //用户自己编写的脚本。

  }

  首先强调一点,for语句的括号内有三个项目,必须要用分号间隔开!

  初始变量:循环语句也是用条件是否成立来控制的,通常我们用一个变量来控制程式执行的次数。那么,这个初始变量就要先定义一个值。要注意的是,初始变量这个项目只执行一次!

  条件语句:这个项目就是我们的判断语句了。假如这个项目判断为真(true),也就是条件成立了。他就直接跳进大括号{}内执行里面的程式!反之,假如条件为假(false),他就直接跳出这个for语句了。

  迭加命令语句:接上面的条件语句,假如条件语句成立,会执行{}内的程式,那么执行完程式之后,就要回来执行迭加命令语句了。通常他就用来增加或减少刚开始时的初始变量的值。

  实例讲解:

  1、新建一个flash文档,在舞台上绘制一个圆,选中圆并按F8转换成影片剪辑,起名为:圆

  这样就在舞台上创建一个圆的实例。

  2、为这个实例起名为:yuan 如图:

  


  3、添加一个新的层,并选中新层的第一帧,按F9打开动作面板,输入如下脚本:

  for (i=1; i<5; i ) {

  //我们定义一个变量i来控制程式的循环次数。条件语句为判断i是否小于5,迭加命令就让每次程式执行之后,让i自己增加一,使程式循环4次!

  duplicateMovieClip("yuan", "yuan" i, i);//duplicateMovieClip是复制命令,用来复制舞台上名字叫yuan的实例,每次复制出来一个,就把新复制出来的实例改名为"yuan" i。影片的深度也改为i

  _root["yuan" i]._x = random(400);

  _root["yuan" i]._y = random(300);//配置每次复制出来的新实例的X、Y坐标,具体数值随机产生。

  _root["yuan" i]._alpha = random(100);//配置每次复制出来的新实例的透明度,具体数值从100里随机产生。

  }

  假如大家实在觉得for语言很难读懂的话,您能够按照for语言执行的顺序把i=1代入程式走一遍,能够帮助您理解程式。例如:当i等于1的时候,程式开始判断他是否小于5,那么1肯定小于5了,条件为真,就执行{}内的复制程式,同时复制出来的新实例的名字就变成了yuan1 ,接着就是配置yuan1的坐标和透明度。之后,for语句开始回去执行i ,此时,i的值就变为2了。然后又开始循环判断执行下去......(您能够算一下,这个for循环总共循环了几次呢?答案是4次。)

  脚本如图:

  


  4、选中时间轴的第6帧,按F6插入一关键帧,打开动作面板输入以下脚本:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: as入门之数学函数--弧度

下一篇: FLASH常见问题整理