分享
 
 
 

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

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

众所周知,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插入一关键帧,打开动作面板输入以下脚本:

gotoAndPlay(1);

让flash播放到第6帧的时候返回第1帧再来执行for循环语句。

如图:

5、测试效果吧,你会看到舞台上会循环4次复制出4个圆。

最终效果演示:(下载源文件点击这里

希望大家能通过这两个简单的例子掌握流程控制语句和循环控制语句

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有