二、运算符(Operators)
本帖隐藏的内容需要回复才可以浏览
% 求余数 (modulo)
功能说明:余数运算符(modulus)可求得两个数值相除的余数,如果整除则返回0。
语法:expression1 % expression2
expression1,expression2: 操作数,可为变量,数值,或表达式
注意:1)若表达式使用 % 运算符,4.0版的swf会把 % 视为 x-int(x/y)*y, 因此运算速度可能会慢于输出成5.0版的swf。
2)求得的余数可能会有小数点,例如 3.8 % 1.2所得的余数为0.2。
() 括号 (parentheses)
功能说明:执行群组运算,或是标示函数使用的自变量(arguments)并且把自变量的值传给函数本身所包含的程序执行。
语法:(expression1,expression2);
function(functioncall1,...,functioncallN);
expression1,expression2: 操作数,可为变量,数值,或表达式
function: 被执行的函数
functioncall1,...,functioncallN: 本身可用的自变量(arguments)的值
* 乘号 (multiplication)
功能说明:标准算术运算符(standard arithmetic operator)包括加(+),减(-),乘(*),除(/)四个运算符。
语法:expression1 * expression2
expression1,expression2: 操作数,可为变量,数值,或表达式
+ 加号 (addition)
功能说明:把两个数值或表达式的值相加,如果是字符串,就会合并两个字符串的内容。
语法:expression1 + expression2
expression1,expression2: 变量,整数,小数或字符串
注意: 1) flash 4的比较运算符 + 只能比较数值。
2) flash 4的程序转换成flash 5的时候,程序会自动把比较运算符号 + 左右两边的expressions同时加上number()。
3) 例如: 程序转换前: x+y
程序转换后: Number(x) + Number(y)
++ 递增运算符 (increment)
功能说明:递增运算符 ++ (increment operator) 可返回变量加 1 的值。
语法:expression++
++expression
expression: 操作数,可为变量,数值,或表达式
注意: 1)假设 x=0;y=0;
2)如果 ++ 摆在操作数后面(x=y++),表示先和其他运算符运算过后(先执行x=y),然后y本身再增加1(后执行y++),所得的值x=0,y=1。
3)如果 ++ 摆在操作数前面(x=++y),表示y先增加1后(先执行y++),再和其他运算符运算(后执行x=y),所得的值x=1,y=1。
- 减号/取负数 (minus)
功能说明:标准算术运算符(standard arithmetic operator)包括加,减,乘,除四个运算符。减号同时也可以使用在取表达式的负数(unary megation operator)。
语法:(减 号): expression1-expression2
(取负数): -expression;
expression1,expression2: 操作数,可为变量,数值,或表达式
-- 递减运算符 (decrement)
功能说明:递减运算符 -- (decrement operator) 可返回变量减 1 的值。
语法:expression--
--expression
expression: 操作数,可为变量,数值,或表达式
注意: 1)假设 x=0;y=0;
2)如果 -- 摆在操作数后面(x=y--),表示先和其他运算符运算过后(先执行x=y),然后y本身再减去1(后执行y--),所得的值x=0,y=-1。
3)如果 -- 摆在操作数前面(x=--y),表示y先减去1后(先执行y--),再和其他运算符运算(后执行x=y),所得的值x=-1,y=-1。
/ 除号 (division) 功能说明:标准算术运算符(standard arithmetic operator)包括加(+),减(-),乘(*),除(/)四个运算符。
语法:expression1 / expression2
expression1,expression2: 操作数,可为变量,数值,或表达式
! 反逻辑(logical NOT)
功能说明:转换表达式的布尔值,若表达式的布尔值为(true)则返回false,否则返回true。
语法:!expression
expression: 变量或表达式
&& 逻辑乘积 (short-circuit AND)
功能说明:使用布尔值(boolean)为操作数,运算 && 左右两边的表达式,若两边表达式都成立(true)则 && 返回true,否则返回false。
语法:expression1 && expression2
expression1,expression2: 变量,数值,字符串,函数
逻辑运算表: A B A&&B
true true true
true false false
false true false
false false false
and 逻辑乘积
功能说明:使用布尔值(boolean)为操作数,运算and左右两边的表达式,若两边表达式都成立(true)则&&返回true,否则返回false。
语法:condition1 and condition2
condition1,condition2: 变量,数值,字符串,函数
注意: flash 5里已经不建议使用and,并且建议使用&&运算符代替原有的and。
逻辑运算表: A B A and B
true true true
true false false
false true false
false false false
not 反逻辑
功能说明:转换表达式的布尔值,若表达式的布尔值为(true)则返回false, 否则返回true。
注意: flash 5里已经不建议使用not,并且建议使用!运算符代替原有的not。
or 逻辑和
功能说明:使用布尔值(boolean)为操作数,运算or左右两边的表达式,若两边表达式只要有一边成立(true)则返回true,否则返回false。
语法:expression1 or expression2
expression1,expression2: 布尔值或表达式
注意: flash 5里已经不建议使用or,并且建议使用||运算符代替原有的or。
逻辑运算表: A B A or B
true true true
true false true
false true true
false false false
|| 逻辑和 (or)
功能说明:使用布尔值(boolean)为操作数,运算or左右两边的表达式,若两边表达式只要有一边成立(true)则返回true,否则返回false。
语法:expression1 || expression2
expression1,expression2: 布尔值或表达式
逻辑运算表: A B A || B
true true true
true false true
false true true
false false false
? : 条件判断(conditional)
功能说明:属于三元运算符,需要三个操作数,若条件成立则把第二操作数的值指定给第一操作数,若条件不成立则把第三操作数的值指定给第一操作数。
语法:expression1 ? expression2 : expression3;
expression1: 表达式,求出表达式的布尔值
expression2,expression3: 任何类型的数值
!= 不等于 (inequality)
功能说明:比较左右的表达式是否不相等,若不相等则返回true,相等则返回false。
语法:expression1 != expression2
expression1,expression2: 数值,字符串,变量,布尔值,对象,数组,函数。
> 大于 (greater than)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值大于右边数值则返回true,否则返回false; 字符串而言,左边字符串长度大于右边字符串长度则返回true,否则返回false。
语法:expression1 > expression2
expression1,expression2: 数值或字符串
注意: 1) flash 4的比较运算符" > "只能比较数值。
2) flash 4的程序转换成flash 5的时候,程序会自动把比较运算符" > "左右两边的expressions同时加上number()。
3) 例如: 程序转换前: x > y
程序转换后: number(x) > number(y)
>= 大于等于 (greater than or equal to)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值大于右边数值则返回true,否则返回false; 字符串而言,左边字符串长度大于右边字符串长度则返回true,否则返回false。
语法:expression1 >= expression2
expression1,expression2: 数值或字符串
注意: 1) flash 4的比较运算符" >= "只能比较数值。
2) flash 4的程序转换成flash 5的时候,程序会自动把比较运算符" >= "左右两边的expressions同时加上number()。
3) 例如: 程序转换前: x >= y
程序转换后: number(x) >= number(y)
< 小于 (less than)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值小于右边数值则返回true,否则返回false; 字符串而言,左边字符串长度小于右边字符串长度则返回true,否则返回false。
语法:expression1 < expression2
expression1,expression2: 数值或字符串
注意: 1) flash 4的比较运算符" < "只能比较数值。
2) flash 4的程序转换成flash 5的时候,程序会自动把比较运算符" < "左右两边的expressions同时加上number()。
3) 例如: 程序转换前: x < y
程序转换后: number(x) < number(y)
<= 小于等于 (less than equal to)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值小于或等于右边数值则返回true,否则返回false; 字符串而言,左边字符串长度小于或等于右边字符串长度则返回true,否则返回false。
语法:expression1 <= expression2
expression1,expression2: 数值或字符串
注意: 1) flash 4的比较运算符" <= "只能比较数值。
2) flash 4的程序转换成flash 5的时候,程序会自动把比较运算符" <= "左右两边的expressions同时加上number()。
3) 例如: 程序转换前: x <= y
程序转换后: number(x) <= number(y)
<> 不等于(inequality)
功能说明:比较左右的表达式是否不相等,若不相等则返回true,相等则返回false。
语法:expression1 <> expression2
expression1,expression2: 数值、字符串、变量、布尔值、对象、数组、函数。
注意: flash 5里已经不建议使用 <> 运算符,并且建议使用 != 代替原有的 <> 。
== 等于(equality)
功能说明:比较左右的表达式是否相等,若相等则返回true,不相等则返回false。
语法:expression1 == expression2
expression1,expression2: 数值、字符串、变量、布尔值、对象、数组、函数。
tepeof 数据类型
功能说明:传回指定的数据类型
语法:typeof(expression);
expression: 数值、字符串、电影短片、对象、函数。
void 不返回值
功能说明:不返回任何值的运算符
语法:void(expression);
expression: 任何数据类型的表达式
& 逻辑与(bitwise AND)
功能说明:将操作数转换成32位的二进制整数,相对位执行逻辑与运算,若两操作数的位均为1,则返回1,否则传回0,最后以标准数值回传结果。
语法:expression1 & expression2
expression1,expression2: 任何数值
注意: 1) & 运算符在flash 4里是用来连接字符串,而非逻辑乘运算,flash 5是使用add或+运算符连接字符串。
2) 版本转换的时候,会自动把程序里的& 转换成add。
位逻辑运算表:
A B A & B A|B A^B
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
位逻辑与的运算结果:
十进制 二进制 (32bit) 结果
21 0...00 00010101
13 0...00 00001101
21&13 0...00 00000101 5
<< 向左位移 (bitwise left shift)
功能说明:将操作数转换成32位的二进制整数,执行向左位移运算,最后以标准数值返回结果。
语法:expression1 << expression2
expression1: 数值,字符串,或表达式
expression2: 位移数,数字从0到31。
向左位移运算结果:
十进制 二进制(32bit) 结果
21 0...00 00010101
21<<3 0...00 10101000 168
-21 1...11 11101011
-21<<3 1...11 01011000 -168
>> 符号右移 (bitwise right shift)
功能说明:将操作数转换成32位的二进制整数,执行向右位移运算,最后以标准数值返回结果。
语法:expression1 >> expression2
expression1: 数值,字符串,或表达式
expression2: 位移数,数字从0到31。
向左位移运算结果:
十进制 二进制(32bit) 结果
21 0...00 00010101
21>>3 0...00 00000010 2
-21 1...11 11101011
-21>>3 1...11 11111101 -3
>>> 填零右移 (bitwise unsigned right shift)
功能说明:将操作数转换成32位的二进制整数,执行填零右移运算,最后以标准数值返回结果。
语法:expression1 >>> expression2
expression1: 数值,字符串,或表达式
expression2: 位移数,数字从0到31。
向左位移运算结果:
十进制 二进制(32bit) 结果
21 0...00 00010101
21>>>3 0...00 00000010 2
-21 1...11 11101011
-21>>>3 00011111 11111111 11111111 11111101 536870909
^ 逻辑异或(bitwise XOR)
功能说明:将操作数转换成32位的二进制整数,相对位执行逻辑异或运算,若两操作数的位均为1 或均为0 则返回1 ,否则返回0 ,最后以标准数值回传结果。
语法:expression1 ^ expression2
expression1,expression2: 任何数值
逻辑运算表:
A B A & B A|B A^B
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
逻辑异或的位运算结果:
十进制 二进制 (32bit) 结果
21 0...00 00010101
13 0...00 00001101
21&13 0...00 00011000 24
| 逻辑或(bitwise OR)
功能说明:将操作数转换成32位的二进制整数,相对位执行逻辑或运算,若两操作数有一位为1 则返回1 ,否则返回0 ,最后以标准数值回传结果。
语法:expression1 | expression2
expression1,expression2: 任何数值
逻辑运算表:
A B A & B A|B A^B
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
逻辑异或的位运算结果:
十进制 二进制 (32bit) 结果
21 0...00 00010101
13 0...00 00001101
21&13 0...00 00011101 29
~ 逻辑非(bitwise NOT)
功能说明:将操作数转换成32位的二进制整数,并执行非逻辑运算,若操作数的位为1 则返回0 ,否则返回1 ,最后以标准数值回传结果。
语法:~expression
expression: 任何数值
注意: 1) 0逻辑非运算的值为-1
2) 1逻辑非运算的值为-2
3) 速算公式: 改变原始值的正负符号后再减1。
= 赋值(assignment)
功能说明:把右边表达式的值赋给左边的变量、数组元素、对象属性。
语法:expression1=expression2
expression1: 变量、数组元素、对象属性
expression2: 各种数据类型的值
注意: 1) flash 4 的赋值运算符=只能赋值数值。
2) flash 4 的程序转换成flash 5的时候,程序会自动把比较运算符=左右两边的expressions同时加上number()。
3) 例如: 程序转换前: x=y
程序转换后: number(x)=number(y)
%= 赋值余数(modulo assignment)
功能说明:先求得两个数值相除的余数,然后再把所得的值赋给左边的变量。
语法: expression1 %= expression2
expression1,expression2: 变量和数值
&= 赋值逻辑与(bitwise AND assignment)
功能说明:将操作数转换成32位的二进制整数,相对位执行逻辑与运算,若两操作数的位均为1 则返回1 ,否则返回0 ,最后以标准数值赋给左边的变量。
语法:expression1 &= expression2
expression1,expression2: 数值和变量
逻辑与的位运算结果:
十进制 二进制 (32bit) 结果
21 0...00 00010101
13 0...00 00001101
21&13 0...00 00000101 5
*= 赋值余数(multiplication assignment)
功能说明:先求得两个数值相乘的乘积,然后再把所得的值赋给左边的变量。
语法: expression1 *= expression2
expression1,expression2: 变量和数值
+= 赋值总和(addition assignment)
功能说明:先求得两个数值相加的总和,然后再把所得的值赋给左边的变量。如果是字符串,就会先合并两个字符串,然后再把所得的新字符串赋给左边的变量。
语法:expression1 += expression2
expression1,expression2: 变量,整数,小数,字符串
-= 赋值差额(negation assignment)
功能说明:先求得两个数值相减的差,然后再把所得的值赋给左边的变量。
语法:expression1 -= expression2
expression1,expression2: 变量,整数,小数,字符串
/= 赋值商数(division assignment)
功能说明:先求得两个数值相除的值,然后再把所得的值赋给左边的变量。
语法:expression1 /= expression2
expression1,expression2: 变量,整数,小数,字符串
<<= 赋值向左位移 (bitwise left shift assignment)
功能说明:将操作数转换成32位的二进制整数,执行向左位移运算,最后以标准数值赋给左边的结果。
语法:expression1 <<= expression2
expression1: 数值,字符串,或表达式
expression2: 位移数,数字从0到31。
向左位移运算结果:
十进制 二进制(32bit) 结果
-21 1...11 11101011
-21<<3 1...11 01011000 -168
>>= 赋值向右位移 (bitwise right shift assignment)
功能说明:将操作数转换成32位的二进制整数,执行向右位移运算,最后以标准数值赋给左边的结果。
语法:expression1 >>= expression2
expression1: 数值,字符串,或表达式
expression2: 位移数,数字从0到31。
向右位移运算结果:
十进制 二进制(32bit) 结果
21 0...00 00010101
21>>3 0...00 00000010 2
>>>= 赋值填零右移 (bitwise unsigned right shift assignment)
功能说明:将操作数转换成32位的二进制整数,执行填零右移运算,最后以标准数值返回结果。
语法:expression1 >>>= expression2
expression1: 数值,字符串,或表达式
expression2: 位移数,数字从0到31。
填零位移运算结果:
十进制 二进制(32bit) 结果
-21 1...11 11101011
-21>>>3 00011111 11111111 11111111 11111101 536870909
^= 逻辑异或(bitwise XOR assignment)
功能说明:将操作数转换成32位的二进制整数,相对位执行逻辑异或运算,若两操作数的位均为1 或均为0 则返回1 ,否则返回0 ,最后以标准数值赋给左边的变量。
语法:expression1 ^= expression2
expression1,expression2: 数值,变量
逻辑异或的运算结果:
十进制 二进制 (32bit) 结果
21 0...00 00010101
13 0...00 00001101
21&13 0...00 00011000 24
|= 赋值逻辑或(bitwise OR assignment)
功能说明:将操作数转换成32位的二进制整数,相对位执行逻辑或运算,若两操作数有一位为1 则返回1 ,否则返回0 ,最后以标准数值赋值给左边的变量。
语法:expression1 |= expression2
expression1,expression2: 数值或变量
逻辑与的位运算结果:
十进制 二进制 (32bit) 结果
21 0...00 00010101
13 0...00 00001101
21&13 0...00 00011101 29
add 合并字符串
功能说明:合并两个字符串的内容。
语法:string1 add string2
string1,string2: 任何字符串
注意: 1) 在flash 4里,& 运算符是用来连接字符串,在flash 5里为逻辑或运算符。
2) flash 5是使用add或+运算符连接字符串。
3) 版本转换的时候,会自动使用add取代程序里的 & 。
4) 然而在flash 5里并不建议使用add运算符,并且建议必用 + 代替add。
eq 等于 (equality)
功能说明:比较左右的表达式是否相等,若相等则返回true,不相等则返回false。
语法:expression1 eq expression2
expression1,expression2: 数值,字符串,变量
注意: flash 5里已经不建议使用eq 运算符,并且建议使用==代替原有的eq。
ge 大于等于 (greater than or equal to)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值大于或等于右边数值则返回true 。否则返回false ;以字符串而言,左边字符串长度大于或等于右边字符串长度则返回true ,否则返回false。
语法:expression1 ge expression2
expression1,expression2: 数值或字符串
注意: flash 5里已经不建议使用 ge 运算符,并且建议使用>= 代替原有的ge。
gt 大于 (greater than)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值大于右边数值则返回true 。否则返回false ;以字符串而言,左边字符串长度大于右边字符串长度则返回true ,否则返回false。
语法:expression1 gt expression2
expression1,expression2: 变量,数值或字符串
注意: flash 5里已经不建议使用 gt 运算符,并且建议使用> 代替原有的gt。
le 小于等于 (less than or equal to)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值小于或等于右边数值则返回true 。否则返回false ;以字符串而言,左边字符串长度小于或等于右边字符串长度则返回true ,否则返回false。
语法:expression1 le expression2
expression1,expression2: 变量,数值或字符串
注意: flash 5里已经不建议使用 le 运算符,并且建议使用<= 代替原有的le。
lt 小于 (less than)
功能说明:比较左右的数值或字符串,以数值而言,若左边数值小于右边数值则返回true 。否则返回false ;以字符串而言,左边字符串长度小于右边字符串长度则返回true ,否则返回false。
语法:expression1 lt expression2
expression1,expression2: 变量,数值或字符串
注意: flash 5里已经不建议使用 lt 运算符,并且建议使用 < 代替原有的lt。
ne 不等于 (inequality)
功能说明:比较左右的表达式是否不相等,若不相等则返回 true,相等则返回 false。
语法:expression1 ne expression2
expression1,expression2: 变量,数值或字符串
注意: flash 5里已经不建议使用 ne 运算符,并且建议使用 != 代替原有的 ne。
以上内容由小飞侠亲自手打,历时4天时间,希望大家多多支持FLASH动画专区!