1.2 ActionScript 语法介绍(2)
1.2.4 ActionScript的简单语法
ActionScript的语法从整体上来看借鉴了许多面向对象语言的优点,因此和现在流行的C++/Java非常类似。有过语言基础的读者也许直接看代码就能理解代码的含义。
1.{和}
和C++一样,ActionScript的语法中{和}表示语句体的开始和结尾,用来分割不同的语句段。
2.函数的说明
在ActionScript中同样也能声明用户自定义的函数。使用关键字function即可声明用户自定义的函数。在ActionScript中,声明函数的位置并没有关系,可以在代码段的开始就声明函数,也可以在代码段的中间或者末尾声明函数。只要在整个代码段中声明了函数,就可以在代码的任何地方调用。下面是一个声明及使用函数的例子:
function test(){
trace("This is an example for declare a function.");
}
test();
3.判断句式
在ActionScript中常常会把用户的输入作为条件来进行一些判断,以决定动画的下一行为。ActionScript的判断句式和C++/Java等高级语言的几乎完全一致,其语法为:
if (条件) { 条件为真时执行的语句 } else { 条件为假时执行的语句}
下面是一个完整的例子:
if (a>5) {
trace("The value of variable a is bigger than 5 .");
}
else {
trace("The value of variable a is not bigger than 5.");
}
在变量a的值大于5的时候,trace函数输出“The value of variable a is bigger than 5 .”,当a的值小于等于5的时候,trace函数就会输出“The value of variable a is not bigger than 5.”。
4.循环句式
在Flash ActionScript中,共有三种循环句式,它们是:
Ö for(初始化;条件;递进) {循环体}
Ö while(条件) {循环体}
Ö do {循环体} while(条件)
下面用实例来分析这三种不同的循环句式:
for循环
for循环是最常用的循环方式,在它的括号中用分号隔开了三个部分。最前的是初始化变量,一般用来初始化充当循环计数器的变量;中间的就是循环执行的条件,当条件为真时执行循环体中的语句;最后是循环体执行完后要执行的语句,一般来说都是修改循环计数器变量的值,以备下次循环判断。下面是个实例:
for (i=1;i<10;i++){
trace(i);
}
这段程序将输出1到9共9个数字,当i=10时,循环中的条件为假,循环体将不被执行。
While循环
while循环,当条件成立时执行循环体中的语句,条件的判断在循环之前。
i=1;
while (i<10){
trace(i);
i++;
}
这段程序将输出1到9共9个数字,当i=10时,循环中的条件为假,循环体将不被执行。
do…while循环
do…while循环,当条件成立时继续执行循环体中的语句,条件的判断在循环体之后,也就是说,循环体至少被执行一次(即使条件不成立,因为条件是在执行完循环体中的语句后才进行判断的)。
i=1;
do {
trace(i);
i++;
}while(i<10);
这段程序将输出1到10共10个数字,当i=10时,执行完循环体中的语句后,才进行判断,发现条件不成立,则不进行下次循环。
在循环中,还可以使用break和continue两条指令,用来控制循环。
break中断循环
执行后跳出循环执行循环外的语句。例如:
for (i=0;i<100;i++) {
if (i==10) break;
}
trace (i);
这段程序运行的结果使trace(i)输出了10这个值,因为当i等于10的时候就跳出了循环。
continue中断一次循环
当前的循环被中断,回到循环的开始部分继续下一次循环。例如:
for (i=0;i<100;i++) {
if (i==10) continue;
trace (i);
}
这段程序的运行结果是,除了10之外的1~99的数字都被trace(i)输出。因为当i等于10时,执行了continue语句,回到循环开始,i的值变成了11。
5.注释~
和C和Java一样,“//”两个斜杠表示整行注释,在这一行内,“//”之后的所有字符都会被认为是注释而被忽略掉。“/*”到“*/”之间的是段落注释,在“/*”到“*/”之间的所有字符(可以换行)都会被认为是注释而被忽略掉。看下面注释的例子:
//这是一行注释
a=5;
/*下面的都是注释
这一行是注释
注释到这行末结束*/
trace(a);