一、?: 条件运算符
expression1 ? expression2 : expression3
指示 Flash 计算 expression1,如果 expression1 的值为 true,则返回值 expression2;否则返回值 expression3。
操作数
expression1 : Object - 一个计算结果为布尔值的表达式;通常为像 x < 5 这样的比较表达式。
expression2 : Object - 任意类型的值。
expression3 : Object - 任意类型的值。
返回 Object - expression2 或 expression3 的值。
示例
下面的语句将变量 x 的值赋予变量 z,因为 expression1 的计算结果是 true:
var x:Number = 5;
var y:Number = 10;
var z = (x < 6) ? x: y;
trace (z); // returns 5
下面的示例说明简写的条件语句:
var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM";
trace(timecode);
也可以按普通形式编写该条件语句,如下例所示:
if (new Date().getHours() < 11) {
var timecode:String = "AM";
} else {
var timecode:String = "PM";
} trace(timecode);
二、^ 按位 XOR 运算符
将 expression1 和 expression2 转换为无符号 32 位整数,然后对于 expression1 或 expression2 中为 1(但不在两者中同时为 1)的相应位的每一位返回 1。浮点数通过舍去小数点后面的所有位来转换为整数。结果是一个新的 32 位整数。
正整数转换为无符号的十六进制值,其最大值为 4294967295 或 0xFFFFFFFF;转换大于最大值的数时,会舍去最高有效位,因此该值仍保持为 32 位。负数通过 2 的补码标记转换为无符号的十六进制值,其最小值为 -2147483648 或 0x800000000;小于最小值的数转换为精度更高的 2 的补码,同时也会舍去最高有效位。
由于返回值解释为带符号的 2 的补码数,因此,返回值将是 -2147483648 到 2147483647 范围中的一个整数。
可用性:Flash Player 5;ActionScript 1.0
操作数
expression1 : Number - 一个数字。
expression2 : Number - 一个数字。
返回 Number - 按位运算的结果。
示例
下面的示例对十进制的 15 和 9 使用按位 XOR 运算符,然后将结果赋予变量 x:
// 15 decimal = 1111 binary
// 9 decimal = 1001 binary
var x:Number = 15 ^ 9;
trace(x);
// 1111 ^ 1001 = 0110
// returns 6 decimal (0110 binary)
三、^= 按位 XOR 赋值运算符
expression1 ^= expression2
对 expression1 赋予 expression1 ^ expression2 的值。例如,下面两个语句是等效的:
x ^= y;
x = x ^ y;
可用性:Flash Player 5;ActionScript 1.0
操作数
expression1 : Number - 整数和变量。
expression2 : Number - 整数和变量。
返回 Number - 按位运算的结果。
示例
下面的示例说明按位 XOR 赋值 (^=) 运算:
// 15 decimal = 1111 binary
var x:Number = 15;
// 9 decimal = 1001 binary
var y:Number = 9;
trace(x ^= y); // returns 6 decimal (0110 binary)