当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash as入门(4):AS常用语句

ActionScript
FLASH AS3与网页JS参数值传递的问题
Flash AS3的parameters对象处理网页参数
Flash教程 认识Flash ActionScript的环境
Flash ActionScript编程基础
Flash AS3代码实现鼠标跟随喷枪涂鸦效果
falsh 跨域调用配置
Flash AS3.0 实例教程 喷泉动画特效
AS3 Loader与URLLoader的比较
ColorTransform类调整显示对象的颜色值
Flash AS3 快速制作烟雾动画
Flash AS3 制作文字飞出动画
ActionScript 学习小心得
ActionScript3.0读取网页FlashVars中的参数的问题
通过实例学习AS3.0:案例三
通过实例学习Flash AS3.0:案例四
通过实例学习Flash AS3.0:案例五
通过实例学习Flash AS3.0:案例六
Flash教程:认识Flash ActionScript的环境
Flash as入门(1):认识AS面板
Flash as入门(3):AS基本语法

ActionScript 中的 Flash as入门(4):AS常用语句


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 188 ::
收藏到网摘: n/a

本例继续讲解AS的基础知识,今天讲解的是AS入门第四课AS常用语句。

AS常用语句

一.运算符

1. = 赋值运算符,它不是数学中的等于,而是将=号右边的值赋给左边的变量.

2. 使用于字符串的运算符:

比较:== 等于. 用于比较两个字符串是否相等,如果相等则返回"true",否则返回false.

如:
a="abc";

b="abc";

c="bcd";

d=(a==b);//d为true

f=(a==c);//f为false

〉大于 .

〉= 大于等于

〈 小于

〈= 小于等于

字符串的大小比较由小到大的顺序是:A一Z一a一z.
+:连接运算:

如:a="abc";

b="def";

c=a+b;//c为:"abcdef"

trace(c);
可以把上述代码复制到帧动作面板中,测试影片,试试.

又如:a="123";

b=456;

c=a+b;//c为:"123456"

trace(c);

而:a=123;

b=456;

c=a+b;//c为:579

trace(c);
上面两个代码出现了不同的结果,这是因为第一段代码a被赋的值是被引号括起来的,那么它就是字符串,在字符串中+号是连接符号,不是数学中的加号.第二段代码,a、b被赋的值都没引号,AS就将它看着数字,在数字类型中+号就是数学中的加号.
+= 这也是连接符号,这是将+=符号左边的字符串与右边的字符串连接,如:

a="abc";

b="def";

a+=b;//这时a为abcdef

3.对数字使用运算符:

+、-、*、/:这就是数学中的加减乘除.

%:求模运算符,即求余数,如:

a=7;

b=2;

c=a%b;//c为a除以b的余数1

+=、-=:分别是符号左边的数字加上或减去右边的数字,并将结果赋值给左边的变量.如:

a=7;

b=2;

a+=b;//这时a为9

a-=b;//这时a为7

*=、/=:同理
++、--:递增递减运算符,即+或减1.如:

a=7;

a++;//这时a为8

a--;//这时a为7
比效:==:等于

!=:不等于

〉:大于

〉=:大于等于

〈:小于

<=:小于等于

 

二、条件语句

if 语句:如果怎么样,就做些什么事.可以把if理解为如果.

格式:
if(条件表达式){

要执行的语句

}

例:
a=7;

b=2;

if (a==b){


trace("是的");

}
这个条件语句的意思是,如果a等于b,那么就输出"是的".将上面代码写到帧动作面板中,测试影片,发现并没有输出面板弹出.因为上面的语句是a等于b时才执行 trace("是的");,事实上现在a不等于b而是大于b,那么trace("是的");就不会执行.把代码改一下:

a=7;

b=2;

if (a〉b){

trace("是的");

}
测试影片,那就会看到输出窗口中的"是的".

if…else语句:这句是如果怎样就执行if后面的语句,如果不是这样就执行else后面的语句.

格式:
if(条件表达式){

要执行的语句

} else {

要执行的语句

}

例:
a=7;

b=2;

if(a〈=b){

trace("a比b小或一样大");

} else {

trace("a比b大");

}
看看这个代码,如果a小于等于b那么就输出:"a比b小或一样大".否则,就输出:"a比b大".测试影片,我们可以看到:"a比b大".
if…else if:这个语句可以测试多个条件.这样理解这个语句,如果怎样就干点什么,又如果怎样,又干点什么,再如果怎样….
还是这个例子:

a =7;

b=2;

if(a<b){

trace("a比b小");

}
else if("a==b"){


trace("a和b一样大");

} else if(a〉b){

trace("a比b大");

}
这段代码意思是:如果a小于b那么输出:"a比b小";如果a等于b那么输出:"a和b一样大";如果a大于b那么输出:"a比b大".测试影片,输出是:"a比b大".

switch语句:上面提到有要检测多个条件的情况,可以用多个else if,用switch语句也可以实现这个目的.

格式:
switch(表达式){

case 表达式的值:


要执行的语句

break;

case 表达式的值:

要执行的语句

break;



default:

要执行的语句

}
上面括号中的表达式也可以是一个变量,下面的大括号中可以有多个 case 表达式的值:,程序执行时会从第一个case开始检查,如果第一个case后的值是括号中表达式的值,那么就执行它后面的语句,如果不是括号中表达式的值,那么,程序就跳到第二个case检查,以此类推,直到找到与括号中表达式的值相等的case语句为止,并执行该case后面的语句.你可能会注意到每一句case后面都有一句breake;这是跳出switch语句的意思,即当找到相符的case,并执行相应的语句后,程序跳出switch语句,不再往下检测.以免发生落空的错误.可能会有这样的情况,所有的case语句后的值都与表达式的值不相符,那么就应该用default:
语句,这时程序就会执行default:
后的语句.如果你确定不会出现这种情况,那么可以不要default:
语句.

例1:
a=7;

b=2;

c=a+b;

switch(c){

case 5:

trace("小了");

breake;

case 12:

trace("大了");

breake;

case 9:

trace("对了");

breake;

}
测试影片,输出句"对了".
例2.
a=7;

b=2;

switch(a+b){

case 5:

trace("小了");

breake;

case 12:

trace("大了");

breake;

case 8:

trace("还是小了");

breake;

default:

trace("都没算对");

}
测试影片输出为:"都没算对".

逻辑运算符:逻辑运算符在运算符那一节没有介绍,是因为它多半用在条件语句中,所以我们在这一节介绍.在上面的条件表达式中,都是单一的条件,比如是否大于是否小于等,实际上我们经常都可能用到复合条件,比如大小多少并且小于多少,大于多少或者小于多少等.在这样的复合条件语句中,有两个词:并且、或者,它们的符号:
&&
并且

丨丨
或者
并且是指两个条件都成立时为真,或者是指只要有一个条件成立时为真.

例1:
a=7;

if((a〉5)&&(a<10)){

trace("正确");

}
测试影片,将输出"正确".因为a=7的确即大于5又小于10,条件为真.

例2:
a=7;

if((a〉5)&&(a〉10)){

trace("正确");

}
测试影片,没有输出.说明 trace("正确");这句没执行.因为a〉5成立,而a〉10不成立,两个条件只有一个为真,整个条件则为假.

例3.
a=7;

if((a〉5)||(a〉10)){

trace("正确");

}
这个例子用的是"||"或者语句,只要有一个条件为真,整个条件表达式为真,测试影片,将输出"正确".

练习:猜数游戏

下面我们来做一个练习,猜数游戏,将上一节运算符及本节条件语句进行综合应用.游戏是由程序产生一个0-100的随机数,然后由用户来猜,程序根据用户猜的数与所产生的随机数进行比较,根据比较结果,给用户提示,直到用户猜中为止,并记录用户所猜次数.

为完成这个练习,我们先介绍一个函数:random(),这个函数将产生一个由0到括号中的数减1的整数.如: a=random(50),那么a的值为0到49之间的一个整数.

现在来做这个练习:新建一flash文件,用文本工具在舞台的上半部居中画一个文本框,在里面输入:”请猜一个0-100之间的数字:”;打开属性面板,设置文本框为静态文本,设置好文本字体的大小和颜色.

在这个文本框的下边,再画一个文本框,打开属性面板,设置文本框为动态文本,在变量框中输入c,这样变量c就代表这个文本框的内容,我们就可以用c来读取和设置这个动态文本框的内容.动态文框是在运行时可以给文本设置值的文本框.关于文本框的的知识,在后面将有专门的课程介绍,这里了解这么多就行了.

在动态文本框的下面,再画一个文本框,打开属性面板,设置文本框为输入文本.将在文本框周围显示边框按钮点下.在变量框中输入s.输入文本框是在运行时,用户可以在其中输入内容人.

下面新建两个按钮,一个标签为”确定”,一个标签为”重猜”.按钮的做法请参阅第二课.将两个按钮放到舞台上,最下面.打开属性面板,”确定”按钮命名为”qd_btn”,”重猜”按钮”命名为”cc_btn”.

新建一层,命名为”action”用来写代码.点中第一帧,点右键,打开动作面板,开始写代码:

首先声明一个变量,用来存放0-100间的随机数,所以第一行代码为:

var a = random(101);
然后声明一个变量,用来存放猜的次数,现在还没猜,所以给它赋值为0,第二行代码为:

var cs:Number = 0;
下面使用条件语句,来比较用户输入的数的产生的随机数:

qd_btn.onRelease = function(){ //当点击确定按钮时,执行下面的语句.
cs++; //猜的次数增加1
if (s>a){ //如果猜的数大于随机数.

c = "大了点"; //动态文本框提示”大了点”.

} else if (s==a){ //如果猜对了,根据猜的次数给出相应结果.

if(cs<=5){ //如果猜的次数在5次以内

c = "哇,你只猜了" + cs + "次就猜对了,真历害!"; //给出表扬,注意这里用到了,字符串的连接.

} else { // 如果不只猜5次.

c="猜对了!你猜了"+cs+"次"; //提示猜对了,并给出猜的次数.

}

} else if (s<a) { //如果猜的数字小于随机数

c="小了点";//提示”小了点”
}
}
最后,来写重猜的代码:

cc_btn.onRelease = function () { //当点击重猜按钮时执行以下语句

a = random(101);//重新产生随机数

cs = 0;//将猜的次数设为0

s="";清空输入文本框

c="";清空提示文本
}

作业:制作猜数游戏

for循环:格式:

for(初值;条件表达式;增值){

要执行的语句

}
这个语句,首先给一个变量设定一个初始值,然后将这个初始值带入条件表达式,如果条件表达式为真,则执行大括号中的语句,并且按括号中增值表达式对变量的值进行增减;然后再次带入条件表达式,如果为真则再次执行大括号中的语句.…,这样直到条件表达式为假为止.

例:var a=0;

for(var i=0;i〈10;i++){

a += i;

}

trace(a);
我们来看看最后输出的a是多少.程序开始时,a等于0,然后进入for循环,循环开始i等于0,条件表达式i<10成立,那么执行a+=i,此时a、 i均为0,那么a为0,然后执行增值i++,则i为1,再检测条件表达式i〈10仍成立,执行a+=i,则a为1;执行i++,i为2……,这样反复循环,直到i为10时,条件表达式i〈10不成立,停止循环.明显可以看出循环进行了10次,这时a是多少呢?测试影片时输出为45

for…in循环:这是遍历或者叫循环访问一个组对象中的成员.比如影片剪辑的子级、对象的属性、数组等.由于数组等在前面还没有介绍,因此我们将for…in循环放到下一课介绍数组时再祥细介绍

while循环:有点类似if语句,只要条件成立就执行相应语句.


格式:
while(条件表达式){

要执行的语句

计数语句

}
当条件表达式为真时,执行大括号中的语句,执行计数语句,然后用计数语句的结果再次检测条件表达式,如此反复循环.直到条件表达式为假为止.这里需要注意的是,如果没有计数语句,或者计数语句的结果永远不能使条件表达式为假,那么循环将水远无休止地反复,这就形成了一个死循环,我们在编程的过程中一定要避免这种情况.

例1:下面的代码是一个死循环,请不要测试.

var a=0;

while(a<10){

trace(a);

}
看看这段代码,程序执行时a等于0,然后进入循环,条件表达式a〈10成立,执行trace(a),输出0,然后再检查条件表达式,因为没有计数语句,a没发生变化,条件表达式仍成立,于是又输出一个0,然后又反复,一直不停地输出0,无休无止,直到天荒地老.
例2:下面的代码是一个死循环,请不要测试.
var a=0;

while(a<10){


trace(a);

a--;

}
这一例加上了计数语句a--,但a的初始值为0,每一个循环它减1,这样条件表达式a<10也是永远为真,因此循环也是永不停息,直到地老天荒.
例3:
var a=0;

while(a<10){

trace(a);

a++;

}
这一例将计数语句改为a++,这样每一循环,a加1,当10个循环后,a为10,条件表达式a<10为假,循环停止.测试本例我们会在输出面板中看到:
0
1
2

9

do…while循环:这个循环实际和while循环是一样的,只是它先执行一次语句,然后再检测条件语句,而while循环是先检测条件语句再执行大括号内的语句.

do…while循环的格式为:

do{

要执行的语句

计数语句

}while(条件表达式);