第二课 操作符与表达式

闪客沙龙

文/小东瓜、莫治雄 修改/大成

 

 操作符与表达式

  表达式是指Flash可以计算并能返回一个值的任何语句。我们可以通过把操作符和值结合在一起或通过函数调用来建立表达式。


  操作符是指定怎样组合、比较或改变表达式的值的字符。操作符操作的元素称为操作数。例如,在下面的语句中,+操作符把数值常量和变量foo的值加起来,foo 和 3 是操作数。
foo + 3
  

一、操作符优先级

  当在同一语句中使用了两个或多个操作符时,一些操作符比其它一些操作符优先。Action按照准确的等级来决定哪一个操作符优先执行。例如,乘法总是在加法前先执行,但括号内的项却比乘法优先。因此,在没有括号时,Action首先执行乘法,如下例所示:
total = 2 + 4 * 3;
结果是14。

  但是,当有括号括住加法时,Action先执行加法:
total = (2 + 4) * 3;
结果是18。

 

二、数值操作符

  数值操作符执行加、减、乘、除和其它算术运算。括号和负号(-)也属于算术操作符。下表列出了ActionScript的数值操作符:

操作符
执行的运算
+
加法
*
乘法
/
除法
%
取模
-
减法
++
递增
--
递减

 

 

 

 

 

 

取模: 10 % 3 =1 (10除3等于9,余1)

 

三、比较操作符   

比较操作符比较表达式的值,返回逻辑值真或假(true 或 false) 。这些操作符常常用在循环和条件语句之中。在下面的例子中,如果变量 byteloaded的值等于bytetotal,跳转到标签名等于"ok"的帧;否则,跳转到标签名等于"loop"的帧:

if (byteloaded == bytetotal) {
gotoAndPlay ("ok");
}
else { gotoAndPlay ("loop");
}
}
  下表列出了ActionScript的比较操作符:

操作符
执行的操作
==
相等
<
小于
>
大于
<=
小于等于
>=
大于等于

 

四、字符串操作符

  +操作符对字符串操作时,其作用是连接两个字符串操作数。例如,下面的语句把两个字符串相加:

"闪客" to "沙龙"
"闪客" + "沙龙"
  结果是"闪客沙龙"。如果+操作符的操作数仅有一个是字符串,Flash把另一个操作数转换为字符串。例如:

timeloaded = 30;

timeremain = 40;

time = "已用时间:" + timeloaded + "\r" + "估计剩余时间:" + timeremain;

其结果:time等于"已用时间:30 \r估计剩余时间:40"

  比较操作符>、>=、<和<=用于操作字符串时也有特殊的作用。这些操作符比较两个字符串,确定哪一个字符串按字母顺序排列时排在前面。如果两个操作数都是字符串时,这些比较操作符比较这两个字符串。如果仅有一个操作数是字符串,ActionScript把两个操作数转换为数值,然后执行数值比较。

 

五、逻辑操作符

  逻辑操作符比较两个逻辑值(真true 和 假false),返回结果也是逻辑值。例如,如果两个操作数的计算结果是 true,则逻辑与运算符(&&)返回true。 如果一个或两个操作数的运算结果是true,逻辑或操作符(||)返回false。 逻辑操作符常常与比较操作符一起使用,以确定一个 if 动作的条件。 例如,在下面的脚本中,如果两个表达式为true,if 动作将被执行。

if ((i > 10) && (_framesloaded > 50)){
play();
}
下表列出了ActionScript的逻辑操作符:

操作符
执行的操作
&&
逻辑与
||
逻辑或
!
逻辑非

逻辑非运算规则:只有一个操作数,原操作数是真,结果为假,原操作数是假,结果为真。


六、赋值操作符

  

  可以用赋值操作符(=)给变量赋值,如下所示:
a = "你好!";
  也可以在同一个表达式中给多个变量赋值:
a = b = c = d;
  也可以使用复合赋值操作符来组合操作。复合操作符对两个操作数进行操作,然后把新的值赋给第一个操作数。例如,下面的两个语句是等价的:

x += 15;
x = x + 15;


  下表列出了ActionScript的赋值操作符:

操作符
执行的操作
!=
不等
=
赋值
+=
加后赋值
-=
减后赋值
*=
乘后赋值
%=
取模后赋值
/=
除后赋值
<<=
左移位后赋值
>>=
右移位后赋值
>>>=
填0右移位后赋值
^=
位异或后赋值
|=
位或后赋值
&=
位与后赋值