符号运算符是指定如何组合、比较或修改表达式的值的字符。


  算术
 +addition加上数值表达式。
 --decrement操作数减去 1。
 /divisionexpression2expression1
 ++increment将表达式加 1。
 %modulo计算 expression1 除以 expression2 所得的余数。
 *multiplication将两个数值表达式相乘。
 -subtraction用于求反或减法运算。
  算术组合赋值
 +=addition assignmentexpression1 || expression2 的值赋予 expression1
 /=division assignmentexpression1 / expression2 的值赋予 expression1
 %=modulo assignmentexpression1 || expression2 的值赋予 expression1
 *=multiplication assignmentexpression1 * expression2 的值赋予 expression1
 -=subtraction assignmentexpression1 || expression2 的值赋予 expression1
  赋值
 =assignmentexpression2(右侧操作数)的值赋予 expression1 中的变量、数组元素或属性。
  按位
 &bitwise ANDexpression1expression2 转换为 32 位无符号整数,然后对整数参数的每一位执行布尔 AND 运算。
 <<bitwise left shiftexpression1shiftCount 转换为 32 位整数,并将 expression1 中的所有位向左移动指定的位数,该数字由 shiftCount 转换所得的整数指定。
 ~bitwise NOTexpression 转换为 32 位有符号整数,然后按位应用 1 的补码。
 |bitwise ORexpression1expression2 转换为 32 位无符号整数,并在 expression1expression2 的对应位为 1 的每个位的位置上放置 1。
 >>bitwise right shiftexpressionshiftCount 转换为 32 位整数,并将 expression 中的所有位向右移动一定的位数,该数目由 shiftCount 转换得到的整数指定。
 >>>bitwise unsigned right shift该运算符与按位右移 (>>) 运算符基本相同,但不保留原始表达式的符号,因为左侧的位始终用 0 填充。
 ^bitwise XORexpression1expression2 转换成 32 位无符号整数,并在 expression1expression2 中对应位为 1(但并非在二者中都为 1)的每个位的位置处放置 1。
  按位组合赋值
 &=bitwise AND assignmentexpression1 & expression2 的值赋予 expression1
 <<=bitwise left shift and assignment执行按位左移(<<=)运算并将内容作为结果存储在 expression1 中。
 |=bitwise OR assignment expression1 | expression2 的值赋予 expression1
 >>=bitwise right shift and assignment执行按位右移运算并将结果存储到 expression 中。
 >>>=bitwise unsigned right shift and assignment执行无符号按位右移运算并将结果存储到 expression 中。
 ^=bitwise XOR assignmentexpression1 || expression2 的值赋予 expression1
  注释
 /*..*/block comment delimiter分隔一行或多行脚本注释。
 //line comment delimiter指示脚本注释的开始。
  比较
 ==equality测试两个表达式是否相等。
 >greater than比较两个表达式并确定 expression1 是否大于 expression2;如果是,则结果为 true
 >=greater than or equal to比较两个表达式并确定 expression1 是大于或等于 expression2 (true),还是 expression1 小于 expression2 (false)。
 !=inequality测试目的与等于 (==) 运算符正好相反。
 <less than比较两个表达式并确定 expression1 是否小于 expression2;如果是,则结果为 true
 <=less than or equal to比较两个表达式并确定 expression1 是否小于或等于 expression2;如果是,则结果为 true
 ===strict equality测试两个表达式是否相等,但是不执行自动数据转换。
 !==strict inequality测试目的与全等 (===) 运算符正好相反。
  逻辑
 &&logical AND如果 expression1false 或可以转换为 false,则返回该表达式;否则,返回 expression2
 &&=logical AND assignmentexpression1 || expression2 的值赋予 expression1
 !logical NOT对变量或表达式的布尔值取反。
 ||logical OR如果 expression1true 或可以转换为 true,则返回该表达式;否则,返回 expression2
 ||=logical OR assignmentexpression1 || expression2 的值赋予 expression1
  其它
 []array access初始化新数组或具用指定元素(a0 等等)的多维数组,或者访问数组中的元素。
  as计算第一个操作数指定的表达式是否是第二个操作数指定的数据类型的成员。
 ,comma计算 expression1,然后计算 expression2,依此类推。
 ?:conditional计算 expression1,如果 expression1 的值为 true,则结果是 expression2 的值;否则,结果是 expression3 的值。
  delete销毁由 reference 指定的对象属性;如果运算完成后属性不存在,则结果为 true;否则,为 false
 .dot访问类变量和方法、获得并设置对象属性以及分隔导入的包或类。
  in计算属性是否是特定对象的一部分。
  instanceof计算表达式的原型链中是否包含 function 的原型对象。
  is计算对象是否与特定的数据类型、类或接口兼容。
 ::name qualifier指定属性、方法、XML 属性或 XML 特性的命名空间。
  new实例化类实例。
 {}object initializer创建一个新的对象并使用指定的 namevalue 属性对其进行初始化。
 ()parentheses对一个或多个参数执行组合运算,对表达式执行顺序计算,或者将一个或多个参数括起来,然后将它们作为参数传递给括号前面的函数。
 /RegExp delimiter在字符前后使用时,表示字符具有文本值并被视作正则表达式 (RegExp),而不是变量、字符串或其它 ActionScript 元素。
 :type用于指定数据类型;此运算符指定变量类型、函数返回类型或函数参数类型。
  typeof计算 expression,并返回指定表达式的数据类型的字符串。
  void计算表达式然后舍弃其值,返回 undefined
  字符串
 +concatenation连接(合并)字符串。
 +=concatenation assignmentexpression1 || expression2 的值赋予 expression1
 "string delimiter用于字符前后时,表示该字符具有文本值且被视作字符串,而不是变量、数值或其它 ActionScript 元素。
  XML
 @attribute identifier标识 XML 或 XMLList 对象的属性。
 { }braces (XML)计算在 XML 或 XMLList 初始值设定项中使用的表达式。
 [ ]brackets (XML)访问 XML 或 XMLList 对象的属性或特性。
 +concatenation (XMLList)将 XML 或 XMLList 值连接(合并)到 XMLList 对象。
 +=concatenation assignment (XMLList)expression1 + expression2 的值赋予 XMLList 对象 expression1
  delete (XML)删除由 reference 指定的 XML 元素或属性。
 ..descendant accessor定位到 XML 或 XMLList 对象的后代元素,或者(与 @ 运算符一起使用)查找匹配的后代属性。
 .dot (XML)定位到 XML 或 XMLList 对象的子元素,或者(与 @ 运算符一起使用)返回 XML 或 XMLList 对象的属性。
 ( )parentheses (XML)计算 E4X XML 构造中的表达式。
 < >XML literal tag delimiter在 XML 文本中定义 XML 标签。
运算符详细信息
+ addition 运算符
用法
expression1 + expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

加上数值表达式。如果两个表达式均为整数,则和为整数;如果有一个或两个表达式为浮点数,则和为浮点数。

如果其中一个表达式是字符串,则所有其它表达式都将转换为字符串,然后连接起来(而不是求和)。否则,如果表达式不是数字,Flash® Player 会将其转换为数字。

操作数
expression1:Number — 要加上的值。
expression2:Number — 要加上的值。

结果
Number — 一个整数或浮点数。

示例
如何使用示例
下面的语句将整数 2 和 3 相加:
trace(2 + 3); // 5
下面的语句将浮点数 2.5 与 3.25 相加:
trace(2.5 +3.25); // 5.75
以下示例说明,如果其中一个表达式为字符串,则所有其它表达式都将被转换为字符串并连接起来:
trace("Number " + 8 + 0); // Number 80
与动态文本字段和输入文本字段相关联的变量的数据类型是 String。在以下示例中,变量 deposit 是舞台上的一个输入文本字段。用户输入存款数目后,该脚本会尝试将 deposit 添加到 oldBalance。然而,由于 deposit 为 String 类型,所以脚本会连接(合并成一个字符串)变量的值,而不是对它们求和。
var oldBalance:Number = 1345.23; 
var currentBalance = deposit_txt.text + oldBalance; 
trace(currentBalance); 
例如,如果用户在存款文本字段中输入 475,则 trace() 语句会将值 4751345.23 发送到“输出”面板。若要更正这一点,请使用 Number() 函数将字符串转换为数字,如下所示:
var oldBalance:Number = 1345.23; 
var currentBalance:Number = Number(deposit_txt.text) + oldBalance;
trace(currentBalance);

另请参见

+= addition assignment 运算符  
用法
expression1 += expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 || expression2 的值赋予 expression1。例如,下面两个语句的结果是相同的:

x += y; 
x = x + y; 
加法 (+) 运算符的所有规则都适用于加法赋值 (+=) 运算符。

操作数
expression1:Number — 一个数字。
expression2:Number — 一个数字。

结果
Number — 加法运算的结果。

示例
如何使用示例
以下示例说明了加法赋值 (+=) 运算符的数值用法:
var x:Number = 5; 
var y:Number = 10; 
x += y; 
trace(x); // 15 

另请参见

[] array access 运算符  
用法
myArray = [a0, a1,...aN]
myArray[i] = value 
myObject[propertyName]

RuntimeVersions: Flash Player 9

初始化新数组或具用指定元素(a0 等等)的多维数组,或者访问数组中的元素。借助数组访问运算符,您可以动态设置和检索实例、变量以及对象名称,还可以访问对象属性。

用法 1:数组是一种对象,其属性称为元素,这些元素由称为索引的数字逐一进行标识。创建数组时,需要用数组访问 ([]) 运算符(或方括号)将元素括起来。数组中可以包含各种类型的元素。例如,以下名为 employee 的数组中就包含了三个元素;第一个元素是一个数字,后两个元素是字符串(位于引号内):

var employee:Array = [15, "Barbara", "Jay"]; 
可通过嵌套方括号来模拟多维数组。您最多可以嵌套深度为 256 层的数组。下面的代码将创建一个包含三个元素的名为 ticTacToe 的数组;其中的每个元素也都是包含了三个元素的数组:
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; 
			
/* Select Debug > List Variables in test mode 
to see a list of the array elements.*/ 
用法 2:将每个元素的索引使用方括号 ([]) 括起来可以直接访问该元素;您可以向数组中添加新元素,也可以更改或检索现有元素的值。数组中的第一个索引始终为 0,如以下示例所示:
var my_array:Array = new Array(); 
my_array[0] = 15; 
my_array[1] = "Hello"; 
my_array[2] = true; 
可以使用方括号添加第四个元素,如以下示例所示:
my_array[3] = "George"; 
可以使用方括号访问多维数组中的元素。第一组方括号用于标识原始数组中的元素,而第二组方括号用于标识嵌套数组中的元素。以下 trace() 语句用于查找第二个数组(索引 1)的第三个元素(索引 2)。
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; 
trace(ticTacToe[1][2]); // 6 
用法 3:可以使用数组访问运算符来动态设置和检索对象属性的值:
var obj:Object = new Object();
obj.prop1 = "foo";
trace(obj["prop" + 1]); // foo
obj.prop2 = "bar";
for (j in obj) {
	trace(obj[j]);
} 
/* Output of for loop: 
foo
bar */

操作数
myArray:Object — 数组的名称。
a0, a1,...aN:Object — 数组中的元素;任何本机类型或对象实例,包括嵌套的数组。
i:Number — 大于等于 0 的整数索引。
myObject:Object — 对象的名称。
propertyName:String — 用于命名对象的属性的字符串。

结果
Object

用法 1:对数组的引用。

用法 2:数组中的一个值;可以是本机类型或对象实例(包括 Array 实例)。

用法 3:对象的一个属性;可以是本机类型或对象实例(包括 Array 实例)。


示例
如何使用示例
以下示例显示了创建新的空 Array 对象的两种方法;第一行使用方括号:
var my_array:Array = []; 
var my_array:Array = new Array();  

以下示例创建一个包含三个元素的名为 employee_array 的数组,并更改数组中的第三个元素。

var employee_array = ["Barbara", "George", "Mary"]; 
trace(employee_array); // Barbara,George,Mary 
employee_array[2] = "Sam"; 
trace(employee_array); // Barbara,George,Sam 
在以下示例中,计算方括号中的表达式,将计算结果作为要从 obj 对象中检索的变量的名称:
var obj:Object = new Object();
obj.prop1 = "foo";
obj.prop2 = "bar";

for (var i:int = 1;i < 3;i++) {
    trace(obj["prop"+i]);
}
/* Output of for loop:
foo
bar */

另请参见

as 运算符  
用法
expression as datatype

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算第一个操作数指定的表达式是否是第二个操作数指定的数据类型的成员。如果第一个操作数是该数据类型的成员,则结果是第一个操作数。否则,结果是 null 值。

对第二个操作数使用的表达式的计算结果必须是数据类型。

操作数
expression:* — 要针对指定的数据类型进行检查的值。
datatype:Class — 用于计算 expression 操作数的数据类型。不能使用特殊的 * 类型(它意味着无类型)。

结果
Object — 如果 expression 是在 datatype 中指定的数据类型的成员,则结果为 expression。否则,结果是 null 值。

示例
如何使用示例
以下示例创建名为 myArray 的简单数组,并将 as 运算符与各种数据类型一起使用。
public var myArray:Array = ["one", "two", "three"];
trace(myArray as Array);  // one,two,three
trace(myArray as Number); // null
trace(myArray as int);    // null

另请参见

= assignment 运算符  
用法
expression1 = expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression2(右侧操作数)的值赋予 expression1 中的变量、数组元素或属性。可以按值赋值,也可以按引用赋值。如果按值赋值,则会复制 expression2 的实际值并将其存储到 expression1 中。当 expression2 是原始值时(也就是说其数据类型是 Boolean、Number、int、uint 或 String),使用按值赋值。按引用赋值会将对 expression2 的引用存储到 expression1 中。按引用赋值通常与 new 运算符一起使用。new 运算符会在内存中创建一个对象,并将对内存中该位置的引用赋予某一变量。

注意:在 ActionScript 3.0 中,所有值(包括原始值)都是对象,所有赋值都是按引用进行的,但原始对象有一些特殊运算符,这些运算符使原始对象如同进行了按值赋值。

操作数
expression1:* — 一个变量、数组元素或对象的属性。
expression2:* — 任何类型的值。

结果
Object — 所赋的值 expression2

示例
如何使用示例
以下示例使用按值赋值将值 5 赋予变量 z
var z:Number = 5; 
以下示例使用按值赋值将值“hello”赋予变量 z
var x:String;
x = "hello";
以下示例使用按引用赋值来创建 moonsOfJupiter 变量,该变量包含对新创建的 Array 对象的引用。然后,使用按值赋值将值“Callisto”复制到由变量 moonsOfJupiter 引用的数组的第一个元素:
var moonsOfJupiter:Array = new Array();
moonsOfJupiter[0] = "Callisto";
以下示例使用按引用赋值来创建新对象,并将对该对象的引用赋予变量 mercury。然后,使用按值赋值将值 3030 赋予 mercury 对象的 diameter 属性:
var mercury:Object = new Object();
mercury.diameter = 3030; // in miles
trace(mercury.diameter); // 3030
以下示例在前一示例的基础上创建一个名为 merkurmercury 在德语中的对应词)的变量,并赋予其 mercury 的值。这会创建两个变量,二者引用内存中的同一对象,这意味意您可以使用任一变量访问该对象的属性。然后,您可以更改 diameter 属性以使用千米代替英里:
var merkur:Object = mercury;
merkur.diameter = 4878;  // in kilometers
trace(mercury.diameter); // 4878

另请参见

@ attribute identifier 运算符  
用法
 myXML.@attributeName 

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

标识 XML 或 XMLList 对象的属性。例如,myXML.@id 可标识 myXML XML 对象的名为 id 的属性。还可以使用下面的语法访问属性:myXML.attribute("id")myXML["@id"]myXML.@["id"]。建议使用 myXML.@id 语法。若要返回所有属性名称的 XMLList 对象,请使用 @*。若要返回名称与 ActionScript 保留字匹配的属性,请使用 attribute() 方法,而不要使用 @ 运算符。

操作数
attributeName:* — 属性的名称。

示例
如何使用示例
第一个示例说明如何使用 @(at 符号)运算符标识元素的属性:
var myXML:XML = 
    <item id = "42">
        <catalogName>Presta tube</catalogName>
        <price>3.99</price>
    </item>;

trace(myXML.@id); // 42
下一个示例返回所有属性名称:
var xml:XML =<example id='123' color='blue'/>
 var xml2:XMLList = xml.@*;
 trace(xml2 is XMLList); // true
 trace(xml2.length());  // 2
 for (var i:int = 0; i < xml2.length(); i++)
 { 
    trace(typeof(xml2[i]));    // xml
    trace(xml2[i].nodeKind()); // attribute
    trace(xml2[i].name());     // id and color
 } 
下一个示例返回名称与 ActionScript 中的保留字匹配的属性。不能使用语法 xml.@class(因为 class 是 ActionScript 中的保留字)。您需要使用语法 xml.attribute("class")
var xml:XML = 
trace(xml.attribute("class"));

另请参见

& bitwise AND 运算符  
用法
expression1 & expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1expression2 转换为 32 位无符号整数,然后对整数参数的每一位执行布尔 AND 运算。通过舍去小数点后的所有位,将浮点数转换成整数。结果是一个新的 32 位整数。

正整数可转换成最大值为 4294967295 或 0xFFFFFFFF 的无符号十六进制值;大于最大值的数字在转换时会舍去最高有效位,所以其值仍为 32 位。负数可通过 2 的补码标记转换成最小值为 -2147483648 或 0x800000000 的无符号十六进制值;小于最小值的数字会先转换为精度更高的 2 的补码,然后舍去最高有效位。

因为结果将被解释为 32 位二进制补码数,所以结果是一个位于 -2147483648 到 2147483647 范围内的整数。

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
int — 按位运算的结果。

示例
如何使用示例
以下示例通过比较数字 13(二进制形式为 1101)和 11(二进制形式为 1011)的位表示形式对二者执行按位 AND 运算。所得到的整数由一系列位组成,只有当位于同一位置的操作数的位都是 1 时,所得到整数中的每一相应位才设置为 1。
var insert:Number = 13; 
var update:Number = 11; 
trace(insert & update); // 9 (or 1001 binary) 
对 13(二进制形式为 1101)和 11(二进制形式为 1011)执行按位 AND 的结果是 9,因为这两个数字中只有第一个和最后一个位置都有数字 1。
  1101
& 1011
  ----
  1001

以下示例说明了返回值转换的行为:

trace(0xFFFFFFFF); // 4294967295 
trace(0xFFFFFFFF & 0xFFFFFFFF); // -1 
trace(0xFFFFFFFF & -1); // -1 
trace(4294967295 & -1); // -1 
trace(4294967295 & 4294967295); // -1 

另请参见

&= bitwise AND assignment 运算符  
用法
expression1 &= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 & expression2 的值赋予 expression1。例如,下面两个表达式是等效的:

x &= y; 
x = x & y; 

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
intexpression1 & expression2 的值。

示例
如何使用示例
以下示例将值 9 赋予 x
var x:Number = 15; 
var y:Number = 9; 
trace(x &= y); // 9 

另请参见

<< bitwise left shift 运算符  
用法
expression1 << shiftCount

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1shiftCount 转换为 32 位整数,并将 expression1 中的所有位向左移动指定的位数,该数字由 shiftCount 转换所得的整数指定。由于执行此运算而空出来的位的位置使用 0 填充,从左端移出的位将被舍去。将某个值左移一位等效于将该值乘以 2。

通过舍去小数点后的所有数字,可将浮点数转换成整数。正整数可转换成最大值为 4294967295 或 0xFFFFFFFF 的无符号十六进制值;大于最大值的数字在转换时会舍去最高有效位,所以其值仍为 32 位。负数可通过 2 的补码标记转换成最小值为 -2147483648 或 0x800000000 的无符号十六进制值;小于最小值的数字会先转换为精度更高的 2 的补码,然后舍去最高有效位。

因为结果将被解释为 32 位二进制补码数,所以结果是一个位于 -2147483648 到 2147483647 范围内的整数。

如果结果为负整数,那么在尝试将该结果赋予 uint 类型的变量时,就会发生运行时错误。虽然 ActionScript 没有“无符号按位左移”运算符,但您可以使用 uint(expression1 << shiftCount) 实现相同的效果,并避免出现运行时错误:

var num1:uint = 0xFF;
var num2:uint = uint(num1 << 24); // uint() prevents runtime error

操作数
expression1:Number — 要左移的数字或表达式。
shiftCount:Number — 转换为介于 0 到 31 之间的整数的数字或表达式。

结果
int — 按位运算的结果。

示例
如何使用示例
在以下示例中,整数 1 左移 10 位:
x = 1 << 10
按位左移运算的结果是 1024。这是由于十进制的 1 等同于二进制的 1,二进制的 1 左移 10 位是二进制的 10000000000,而二进制的 10000000000 是十进制的 1024:
   00000000001 binary 
<<          10 decimal
--------------
   10000000000 binary equals 1024 decimal 

在以下示例中,整数 7 左移 8 位:

x = 7 << 8
按位左移运算的结果是 1792。这是由于十进制的 7 等同于二进制的 111,二进制的 111 左移 8 位是二进制的 11100000000,而二进制的 11100000000 是十进制的 1792:
   00000000111 binary 
<<           8 decimal
--------------
   11100000000 binary equals 1792 decimal 

下面的 trace 语句说明所有的位已向左移三位:

// 1 binary == 0001 
// 8 binary == 1000 
trace(1 << 3); // 8 

另请参见

<<= bitwise left shift and assignment 运算符  
用法
expression1 <<= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

执行按位左移(<<=)运算并将内容作为结果存储在 expression1 中。下面两个表达式是等效的:

A <<= B
A = (A << B)

操作数
expression1:Number — 要左移的数字或表达式。
expression2:Number — 转换为介于 0 到 31 之间的整数的数字或表达式。

结果
int — 按位运算的结果。

示例
如何使用示例
以下示例使用按位左移并赋值 (<<=) 运算符将所有的位向左移一位:
var x:Number = 4; 
// Shift all bits one slot to the left. 
x <<= 1; 
trace(x); // 8 
// 4 decimal = 0100 binary 
// 8 decimal = 1000 binary  

另请参见

~ bitwise NOT 运算符  
用法
~expression

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression 转换为 32 位有符号整数,然后按位应用 1 的补码。也就是在结果中将所有为 0 的位设置为 1,所有为 1 的位设置为 0。结果为有符号的 32 位整数。此运算符也称为 1 的求补运算符或按位求补运算符。

例如,十六进制值 0x7777 的二进制数表示形式如下:

0111011101110111

该十六进制值按位取反值 ~0x7777 的二进制数表示形式如下:

1000100010001000

如果采用十六进制形式,则为 0x8888。因此,~0x7777 就是 0x8888。

按位运算符最常见的用途是表示标志位(分别为每 1 位填充一个布尔值)。

通过舍去小数点后的所有数字,可将浮点数转换成整数。正整数可转换成最大值为 4294967295 或 0xFFFFFFFF 的无符号十六进制值;大于最大值的数字在转换时会舍去最高有效位,所以其值仍为 32 位。负数可通过 2 的补码标记转换成最小值为 -2147483648 或 0x800000000 的无符号十六进制值;小于最小值的数字会先转换为精度更高的 2 的补码,然后舍去最高有效位。

因为结果将被解释为 32 位二进制补码数,所以结果是一个位于 -2147483648 到 2147483647 范围内的整数。

操作数
expression:Number — 要转换的数字。

结果
int — 按位运算的结果。

示例
如何使用示例
以下示例演示了如何对标志位使用按位非 (~) 运算符:
var ReadOnlyFlag:int = 0x0001; // defines bit 0 as the read-only flag 
var flags:int = 0; 
trace(flags); 
/* To set the read-only flag in the flags variable, 
the following code uses the bitwise OR: 
*/
flags |= ReadOnlyFlag; 
trace(flags); 
/* To clear the read-only flag in the flags variable, 
first construct a mask by using bitwise NOT on ReadOnlyFlag. 
In the mask, every bit is a 1 except for the read-only flag. 
Then, use bitwise AND with the mask to clear the read-only flag. 
The following code constructs the mask and performs the bitwise AND: 
*/ 
flags &= ~ReadOnlyFlag; 
trace(flags); 
// 0 1 0 

另请参见

| bitwise OR 运算符  
用法
expression1 | expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1expression2 转换为 32 位无符号整数,并在 expression1 expression2 的对应位为 1 的每个位的位置上放置 1。

通过舍去小数点后的所有数字,可将浮点数转换成整数。正整数可转换成最大值为 4294967295 或 0xFFFFFFFF 的无符号十六进制值;大于最大值的数字在转换时会舍去最高有效位,所以其值仍为 32 位。负数可通过 2 的补码标记转换成最小值为 -2147483648 或 0x800000000 的无符号十六进制值;小于最小值的数字会先转换为精度更高的 2 的补码,然后舍去最高有效位。

因为结果将被解释为 32 位二进制补码数,所以结果是一个位于 -2147483648 到 2147483647 范围内的整数。

操作数
expression1:Number — 一个数字。
expression2:Number — 一个数字。

结果
int — 按位运算的结果。

示例
如何使用示例
下面是按位 OR (|) 运算符的示例:
// 15 decimal = 1111 binary 
var a:Number = 15; 
// 9 decimal = 1001 binary 
var b:Number = 9; 
// 1111 | 1001 = 1111 
trace(a | b); // returns 15 decimal (1111 binary)
请勿将单个 |(按位 OR)与 || (逻辑 OR)混淆。

另请参见

|= bitwise OR assignment 运算符  
用法
expression1 |= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 | expression2 的值赋予 expression1。例如,下面两个语句是等效的:

x |= y; 
x = x | y; 

操作数
expression1:Number — 要转换的数字。
expression2:Number — 要转换的数字。

结果
int — 按位运算的结果。

示例
如何使用示例
以下示例使用按位 OR 赋值 (|=) 运算符:
// 15 decimal = 1111 binary 
var a:Number = 15; 
// 9 decimal = 1001 binary 
var b:Number = 9; 
// 1111 |= 1001 = 1111 
trace(a |= b); // returns 15 decimal (1111 binary) 

另请参见

>> bitwise right shift 运算符  
用法
expression >> shiftCount

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expressionshiftCount 转换为 32 位整数,并将 expression 中的所有位向右移动一定的位数,该数目由 shiftCount 转换所得的整数指定。从右端移出的位将被舍去。若要保留原始表达式的符号,当 expression 的最高有效位(最左侧的位)是 0 时,左侧的位都填充 0;如果最高有效位是 1,则填充 1。将某个值右移一位等效于将该值除以 2 并舍去余数。

通过舍去小数点后的所有数字,可将浮点数转换成整数。正整数可转换成最大值为 4294967295 或 0xFFFFFFFF 的无符号十六进制值;大于最大值的数字在转换时会舍去最高有效位,所以其值仍为 32 位。负数可通过 2 的补码标记转换成最小值为 -2147483648 或 0x800000000 的无符号十六进制值;小于最小值的数字会先转换为精度更高的 2 的补码,然后舍去最高有效位。

因为结果将被解释为 32 位二进制补码数,所以结果是一个位于 -2147483648 到 2147483647 范围内的整数。

操作数
expression:Number — 要右移的数字或表达式。
shiftCount:Number — 转换为介于 0 到 31 之间的整数的数字或表达式。

结果
int — 按位运算的结果。

示例
如何使用示例
以下示例将 65535 转换为 32 位整数并将其向右移动 8 位,得到一个十进制值 255:
var a:Number = 65535 >> 8; 
trace(a); // 255
这是由于十进制的 65535 等于二进制的 00000000000000001111111111111111(十六个 0 后跟十六个 1);向右移动 8 位将舍弃最低有效位(最右侧的 8 位)。由于 65535 是正数,所以通过移动所空出的位的位置(最左侧的 8 位)使用 0 填充。结果为二进制的 00000000000000000000000011111111(二十四个 0 后跟八个 1),代表 32 位整数 255。
    00000000000000001111111111111111 binary (65535 decimal)
>>                                 8 decimal
--------------------
    00000000000000000000000011111111 binary (255 decimal)
以下示例将 -8 转换为 32 位整数并将其右移一位,得到一个十进制值 -4:
var a:Number = -8 >> 1;
trace(a); // -4
这是因为十进制的 -8 等于二进制的 11111111111111111111111111111000(二十九个 1 后跟三个 0);向右移动一位将舍去最低有效位(最右侧的一位)。由于 -8 是负数,所以通过移动所空出的位的位置(最左侧的 1 位)使用 1 填充。结果为二进制的 11111111111111111111111111111100(三十个 1 后跟两个 0),代表 32 位整数 -4。
    11111111111111111111111111111000 binary (-8 decimal)
>>                                1 decimal
--------------------
    11111111111111111111111111111100 binary (-4 decimal)

另请参见

>>= bitwise right shift and assignment 运算符  
用法
expression >>= shiftCount

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

执行按位右移运算并将结果存储到 expression 中。

下面的两个语句是等效的:

A >>= B; 
A = (A >> B);

操作数
expression:Number — 要右移的数字或表达式。
shiftCount:Number — 转换为介于 0 到 31 之间的整数的数字或表达式。

结果
int — 按位运算的结果。

示例
如何使用示例
以下代码使用按位右移并赋值 (>>=) 运算符:
function convertToBinary(numberToConvert:Number):String { 
    var result:String = ""; 
    for (var i = 0; i < 32; i++) { 
        // Extract least significant bit using bitwise AND. 
        var lsb:Number = numberToConvert & 1; 
        // Add this bit to the result.
        result = (lsb ? "1" : "0")+result; 
        // Shift numberToConvert right by one bit, to see next bit. 
        numberToConvert >>= 1; 
    } 
    return result; 
} 
trace(convertToBinary(479)); 
// Returns the string 00000000000000000000000111011111. 
// This string is the binary representation of the decimal number 479.

另请参见

>>> bitwise unsigned right shift 运算符  
用法
expression >>> shiftCount

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

该运算符与按位右移 (>>) 运算符基本相同,但不保留原始表达式的符号,因为左侧的位始终用 0 填充。

通过舍去小数点后的所有数字,可将浮点数转换成整数。正整数可转换成最大值为 4294967295 或 0xFFFFFFFF 的无符号十六进制值;大于最大值的数字在转换时会舍去最高有效位,所以其值仍为 32 位。负数可通过 2 的补码标记转换成最小值为 -2147483648 或 0x800000000 的无符号十六进制值;小于最小值的数字会先转换为精度更高的 2 的补码,然后舍去最高有效位。

结果将解释为 32 位无符号整数,所以结果是一个介于 0 和 4294967295 之间的整数。

注意:ActionScript 没有补充“按位无符号左移”运算符,但您可以使用 uint(expression << shiftCount) 实现相同的效果。

操作数
expression:Number — 要右移的数字或表达式。
shiftCount:Number — 转换为介于 0 和 31 之间的整数的数字或表达式。

结果
uint — 按位运算的结果。

示例
如何使用示例
以下示例将 -1 转换为 32 位整数并向右移动一位:
var a:Number = -1 >>> 1; 
trace(a); // 2147483647 
这是因为十进制的 -1 是二进制的 11111111111111111111111111111111(32 个 1),当右移(无符号)1 位时,将舍去最低有效位(最右端的位),同时使用 0 填充最高有效位(最左端的位)。结果为二进制的 01111111111111111111111111111111,代表 32 位整数 2147483647。

另请参见

>>>= bitwise unsigned right shift and assignment 运算符  
用法
expression >>>= shiftCount

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

执行无符号按位右移运算并将结果存储到 expression 中。下面的两个语句是等效的:

A >>>= B; 
A = (A >>> B); 

操作数
expression:Number — 要右移的数字或表达式。
shiftCount:Number — 转换为介于 0 到 31 之间的整数的数字或表达式。

结果
uint — 按位运算的结果。

示例
如何使用示例
以下示例将 -1 转换为 32 位整数并向右移动一位:
var a:Number = -1; 
a >>>= 1; 
trace(a); // 2147483647 
这是因为十进制的 -1 是二进制的 11111111111111111111111111111111(32 个 1),当右移(无符号)1 位时,将舍去最低有效位(最右端的位),同时使用 0 填充最高有效位(最左端的位)。结果为二进制的 01111111111111111111111111111111,代表 32 位整数 2147483647。

另请参见

^ bitwise XOR 运算符  
用法
expression1 ^ expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1expression2 转换成 32 位无符号整数,并在 expression1expression2 中对应位为 1(但并非在二者中都为 1)的每个位的位置处放置 1。

通过舍去小数点后的所有数字,可将浮点数转换成整数。正整数可转换成最大值为 4294967295 或 0xFFFFFFFF 的无符号十六进制值;大于最大值的数字在转换时会舍去最高有效位,所以其值仍为 32 位。负数可通过 2 的补码标记转换成最小值为 -2147483648 或 0x800000000 的无符号十六进制值;小于最小值的数字会先转换为精度更高的 2 的补码,然后舍去最高有效位。

因为结果将被解释为 32 位二进制补码数,所以结果是一个位于 -2147483648 到 2147483647 范围内的整数。

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
int — 按位运算的结果。

示例
如何使用示例
以下示例对十进制值 15 和 9 使用按位 XOR 运算符,并将结果赋予变量 a
// 15 decimal = 1111 binary 
// 9 decimal = 1001 binary 
var a:Number = 15 ^ 9; 
trace(a); 
// 1111 ^ 1001 = 0110 
// returns 6 decimal (0110 binary) 

另请参见

^= bitwise XOR assignment 运算符  
用法
expression1 ^= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 ^ expression2 的值赋予 expression1。例如,下面两个语句是等效的:

x ^= y 
x = x ^ y 

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
int — 按位运算的结果。

示例
如何使用示例
以下示例说明了按位 XOR 赋值 (^=) 运算:
// 15 decimal = 1111 binary 
var a:Number = 15; 
// 9 decimal = 1001 binary 
var b:Number = 9; 
trace(a ^= b); // returns 6 decimal (0110 binary) 

另请参见

/*..*/ block comment delimiter 运算符  
用法
/* comment */
/* comment
   comment */

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

分隔一行或多行脚本注释。出现在起始分隔符 (/*) 和结束分隔符 (*/) 之间的字符被 ActionScript 编译器解释为注释并忽略。使用这些分隔符来标识多行的连续注释;对于单行注释,请使用 // 分隔符。

如果省略闭合块注释分隔符 (*/) 或尝试嵌套注释,则会收到错误消息。在使用起始分隔符 (/*) 之后,第一个结束分隔符 (*/) 将结束注释,无论它前面放置了多少起始分隔符都是如此。

操作数
comment:* — 任何字符。

示例
如何使用示例
以下脚本在脚本起始位置使用了块注释分隔符:
/* records the X and Y positions of 
the ball and bat movie clips */ 
var ballX:Number = ball_mc._x; 
var ballY:Number = ball_mc._y; 
var batX:Number = bat_mc._x; 
var batY:Number = bat_mc._y;
以下嵌套注释尝试将引发错误消息:
/* This is an attempt to nest comments. 
/* But the first closing tag will be paired 
with the first opening tag */ 
and this text will not be interpreted as a comment */ 

另请参见

{ } braces (XML) 运算符  
用法
 myXML = <{tagName} {attributeName} = {attributeValue}>{content}</{tagName}>

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算在 XML 或 XMLList 初始值设定项中使用的表达式。 XML 或 XMLList 初始值设定项是赋予 XML 或 XMLList 类型的变量的文本值。由 XML {} 运算符分隔的表达式可以用于 XML 或 XMLList 初始值设定项中,而不能用于文本名称或值中。表达式可代替 tagNameattributeNameattributeValuecontent

操作数
myXML:* — XML 或 XMLList 对象。
tagName:* — 计算结果为 XML 标签名称的表达式。
attributeName:* — 计算结果为 XML 属性名称的表达式。
attributeValue:* — 计算结果为 XML 属性的值的表达式。
content:* — 计算结果为 XML 标签的内容的表达式。

示例
如何使用示例
以下示例说明如何使用 { 和 } 运算符定义 XML 文本:
var tagname:String = "item"; 
var attributename:String = "id"; 
var attributevalue:String = "5"; 
var content:String = "Chicken"; 
var x:XML = <{tagname} {attributename}={attributevalue}>{content}</{tagname}>; 
trace(x.toXMLString()); // <item id="5">Chicken</item>

另请参见

[ ] brackets (XML) 运算符  
用法
 myXML[expression]

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

访问 XML 或 XMLList 对象的属性或特性。借助方括号运算符,您可以访问无法使用点 (.) 运算符访问的属性名。

操作数
myXML:* — XML 或 XMLList 对象。
expression:* — 计算结果为 XML 标签名称或属性名称的表达式。

示例
如何使用示例
以下示例说明了如何使用 [] 运算符来访问 因标签名中有连字符而无法使用点运算符访问的 XML 属性:
var myXML:XML = <a><foo-bar>44</foo-bar></a>;
trace(myXML["foo-bar"]);

另请参见

, comma 运算符  
用法
(expression1, expression2[, expressionN... ])

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算 expression1,然后计算 expression2,依此类推。此运算符主要与 for 循环语句一起使用,并常与括号 () 运算符一起使用。

操作数
expression1:* — 要计算的表达式。
expression2:* — 要计算的表达式。
expressionN:* — 要计算的任意数量的其它表达式。

结果
Object — 所计算的表达式的值。

示例
如何使用示例
以下示例在 for 循环中使用逗号 (,) 运算符:
for (i = 0, j = 0; i < 3 && j < 3; i++, j+=2) { 
    trace("i = " + i + ", j = " + j); 
} 
// output: 
// i = 0, j = 0 
// i = 1, j = 2
以下示例使用逗号运算符但不使用括号运算符,来说明逗号运算符比赋值 (=) 运算符的优先级低:
var v:Number = 0; 
v = 4, 5, 6; 
trace(v); // 4 
以下示例使用逗号运算符并使用括号运算符,而且说明逗号运算符返回最后一个表达式的值:
var v:Number = 0; 
v = (4, 5, 6); 
trace(v); // 6 
以下示例使用逗号运算符但不使用括号运算符,而且说明逗号运算符将导致按顺序计算所有表达式。因为赋值 (=) 运算符的优先级比逗号运算符高,所以第一个表达式 v + 4 将赋值给变量 v。接着,计算第二个表达式 z++z 增加 1。
var v:Number = 0; 
var z:Number = 0; 
v = v + 4 , z++, v + 6; 
trace(v); // 4
trace(z); // 1 
以下示例与前一示例基本相同,只是添加了括号,括号会更改运算的顺序,这样就会先计算逗号运算符再计算赋值 (=) 运算符:
var v:Number = 0; 
var z:Number = 0; 
v = (v + 4, z++, v + 6); 
trace(v); // 6
trace(z); // 1 

另请参见

+ concatenation 运算符  
用法
expression1 + expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

连接(合并)字符串。如果其中一个表达式为字符串,则将所有其它表达式都转换为字符串,然后连接起来。

如果这两个表达式都是数字,则该运算符将充当加法运算符。

操作数
expression1:String — 要连接的字符串。
expression2:String — 要连接的字符串。

结果
String — 连接后的字符串。

示例
如何使用示例
以下示例连接两个字符串。
var lastName:String = "Cola"; 
var instrument:String = "Drums"; 
trace(lastName + " plays " + instrument); // Cola plays Drums 
以下示例说明,如果其中一个表达式为字符串,则所有其它表达式都将被转换为字符串并连接起来:
trace("Number " + 8 + 0); // Number 80
以下示例说明,由于字符串表达式右侧的数值已转换为字符串,因此不对它们进行求和:
var a:String = 3 + 10 + "asdf"; 
trace(a); // 13asdf 
var b:String = "asdf" + 3 + 10; 
trace(b); // asdf310 

另请参见

+ concatenation (XMLList) 运算符  
用法
expression1 + expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

将 XML 或 XMLList 值连接(合并)到 XMLList 对象。 只有当这两个操作数都是 XML 或 XMLList 值时,结果才为 XMLList 对象。

操作数
expression1:* — 一个 XML 或 XMLList 值。
expression2:* — 一个 XML 或 XMLList 值。

结果
XMLList — 已连接起来的 XMLList 对象。

示例
如何使用示例
以下示例说明了如何使用 XMLList (+)(连接)运算符:
var x1:XML = 
        <employee id = "42">
            <firstName>Joe</firstName>
            <lastName>Smith</lastName>
        </employee>;

var x2:XML = 
        <employee id = "43">
            <firstName>Susan</firstName>
            <lastName>Jones</lastName>
        </employee>;

var myXMLList:XMLList = x1 + x2;
    
trace(myXMLList.toXMLString()); 

trace 语句生成的输出内容如下:

<employee id = "42">
    <firstName>Joe</firstName>
    <lastName>Smith</lastName>
</employee>
<employee id = "43">
    <firstName>Susan</firstName>
    <lastName>Jones</lastName>
</employee>
    

另请参见

+= concatenation assignment 运算符  
用法
expression1 += expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 + expression2 的值赋予 expression1。例如,下面两个语句的结果是相同的:

x += y; 
x = x + y;
连接 (+) 运算符的所有规则都适用于连接赋值 (+=) 运算符。请注意,对 TextFieldtext 属性使用连接赋值(即 someTextField.text += moreText)的效率远不如 TextField.appendText(),尤其是包含大量内容的 TextField

操作数
expression1:String — 一个字符串。
expression2:String — 一个字符串。

结果
Number — 连接运算的结果。

示例
如何使用示例
以下示例将 += 运算符与字符串表达式一起使用:
var x1:String = "My name is "; 
x1 += "Gilbert"; 
trace(x1); // My name is Gilbert 

另请参见

+= concatenation assignment (XMLList) 运算符  
用法
expression1 += expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 + expression2 的值赋予 XMLList 对象 expression1。例如,下面两个语句的结果是相同的:

x += y; 
x = x + y; 
XMLList 连接 (+) 运算符的所有规则都适用于 XMLList 连接赋值 (+=) 运算符。

操作数
expression1:XMLList — 要为其添加新值的 XMLList 对象。
expression2:* — 一个 XML 或 XMLList 值。

示例
如何使用示例
以下示例说明了如何使用 XMLList 连接赋值 (+=) 运算符:
var x1:XML = <location>Athens</location>;    
var x2:XML = <location>Paris</location>;        
myXMLList = x1 + x2;

var x3:XML = <location>Springfield</location>;
myXMLList += x3;
            
trace(myXMLList.toXMLString());

trace 语句生成的输出内容如下:

<location>Athens</location>
    
<location>Paris</location>    

<location>Springfield</location>

另请参见

?: conditional 运算符  
用法
expression1 ? expression2 : expression3

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算 expression1,如果 expression1 的值为 true,则结果是 expression2 的值;否则,结果是 expression3 的值。

操作数
expression1:Boolean — 计算结果是布尔值的表达式;通常是比较表达式,如 x < 5
expression2:* — 任何类型的值。
expression3:* — 任何类型的值。

结果
*expression2expression3 的值。

示例
如何使用示例
在下面的语句中,因为第一个表达式的计算结果为 true,所以将变量 x 的值赋予变量 z
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); 

另请参见

-- decrement 运算符  
用法
--expression
expression--

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

操作数减去 1。操作数可以是变量、数组中的元素或对象的属性。 运算符的前递减形式 (--expression) 从 expression 中减去 1,然后返回结果。运算符的后递减形式 (expression--) 从 expression 中减去 1,然后返回 expression 的初始值(即相减之前的值)。

操作数
expression:Number — 一个数字或一个计算结果为数字的变量。

结果
Number — 递减的值的结果。

示例
如何使用示例
前递减形式的运算符将 x 减小到 2 (x - 1 = 2),并将结果作为 y 返回:
var x:Number = 3; 
var y:Number = --x; // y is equal to 2
后递减形式的运算符将 x 减小到 2 (x - 1 = 2),并将 x 的原始值作为结果 y 返回:
var x:Number = 3; 
var y:Number = x--; // y is equal to 3
以下示例从 10 到 1 进行循环,循环的每次迭代都会使计时器变量 i 减少 1:
for (var i = 10; i > 0; i--) { 
    trace(i); 
}

另请参见

delete 运算符  
用法
 delete reference

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

销毁由 reference 指定的对象属性;如果运算完成后属性不存在,则结果为 true;否则,为 false。如果对不存在的属性或未在类中定义的动态属性调用 delete 运算符,则该运算符返回 true

如果无法删除 reference 参数,则 delete 运算符会失败并返回 false。不能删除由 var 语句声明的固定属性或变量。固定属性是指在类定义中定义的变量或方法。

delete 运算符不能用来销毁类的属性,除非该类是在运行时添加的动态类。密封类的属性无法使用 delete 销毁,可以改为将该属性设置为 null

注意:虽然您无法删除对象,但可以删除对该对象的所有引用,使其符合垃圾回收的条件。对一个对象的最常见的引用是指向它的变量。可将变量设置为 null 以删除此类引用。垃圾回收器会删除没有引用的所有对象。

操作数
reference:* — 要消除的属性的名称。

结果
Boolean — 如果删除成功,则值为 true;否则,为 false

示例
如何使用示例
以下示例删除对象的某个属性:
// create the new object "account" 
var account:Object = new Object(); 
// assign property name to the account 
account.name = "Jon"; 
// delete the property 
delete account.name; 
trace(account.name); // undefined

// delete a nonexistent property
var fooDeleted:Boolean = delete account.foo;
trace(fooDeleted); // true

以下示例删除数组元素的值,但不改变 length 属性的值:

var my_array:Array = new Array(); 
my_array[0] = "abc"; // my_array.length == 1 
my_array[1] = "def"; // my_array.length == 2 
my_array[2] = "ghi"; // my_array.length == 3 
// my_array[2] is deleted, but Array.length is not changed 
delete my_array[2]; 
trace(my_array.length); // 3 
trace(my_array); // abc,def,

以下示例说明从 delete 返回的布尔值如何用作以后代码执行的条件。注意:如果已经删除了某个项目,则再次对该项目调用 delete 将返回 false

var my_array:Array = [ "abc", "def", "ghi" ];
var deleteWasSuccessful:Boolean

deleteWasSuccessful = delete my_array[0];
if(deleteWasSuccessful) delete my_array[1];
deleteWasSuccessful = delete my_array[0];
if(deleteWasSuccessful) delete my_array[2];

trace(my_array) // outputs:undefined,undefined,ghi

另请参见

delete (XML) 运算符  
用法
 delete reference

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

删除由 reference 指定的 XML 元素或属性。

当与 XMLList 操作数一起使用时,delete 运算符的结果始终为 true,这是因为 XMLList 操作数总是引用有效的(尽管有可能为空)的 XMLList 对象。

操作数
reference:XMLList — 用于指定要删除的 XML 元素或属性的 XMLList 对象。

结果
Boolean — 如果删除成功,则值为 true;如果删除失败,则值为 false

示例
如何使用示例
以下示例依次说明了如何删除属性、 一个元素、多个元素:
 
var x1:XML = <x1>
                <a id = "52">AYY</a>
                <a>AYY 2 </a>
                <b>BEE</b>
                <c>CEE</c>
            </x1>;

trace(x1.toXMLString());
trace("___________");

delete x1.a.@id;

trace(x1.toXMLString());
trace("___________");

delete x1.b;

trace(x1.toXMLString());
trace("___________");

delete x1.a;

trace(x1.toXMLString());

输出内容如下:

<x1>
  <a id="52">AYY</a>
  <a>AYY 2</a>
  <b>BEE</b>
  <c>CEE</c>
</x1>
___________
<x1>
  <a>AYY</a>
  <a>AYY 2</a>
  <b>BEE</b>
  <c>CEE</c>
</x1>
___________
<x1>
  <a>AYY</a>
  <a>AYY 2</a>
  <c>CEE</c>
</x1>
___________
<x1>
  <c>CEE</c>
</x1>

以下示例介绍了如何删除某个元素的所有内容(包括属性 和子元素),但不删除该元素本身:
 
var xml:XML = 
            <order>
                <item id="121">hamburger</item>
                <item id="122">fries</item>
                <item id="123">chocolate shake</item>
            </order>;
delete xml.item[1].*;
delete xml.item[1].@*;
trace(xml);

此示例的输出内容如下:

<order>
  <tem id="121">hamburger</item>
  <item/>
  <item id="123">chocolate shake</item>
</order>

.. descendant accessor 运算符  
用法
 myXML..childElement1..@attributeName 

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

定位到 XML 或 XMLList 对象的后代元素, 或者(与 @ 运算符一起使用)查找匹配的后代属性。匹配的元素或属性无需是 XML 或 XMLList 对象的直属子项;它们可以位于树中更低的级别(例如,孙级)。因为匹配的子元素或属性有多个,所以结果是 XMLList 对象。

返回的 XMLList 对象中节点的顺序是深度优先遍历的结果。例如,看一下以下示例:

var myXML:XML = <a>
			<b>one
				<c> 
					<b>two</b> 
				</c> 
			</b>
			<b>three</b>
		</a>;

trace(myXML..b[0].toXMLString());
trace("______________");
trace(myXML..b[1].toXMLString());
trace("______________");
trace(myXML..b[2].toXMLString());

输出内容将如下所示:

<b>
  one
  <c>
    <b>two</b>
  </c>
</b>
______________
<b>two</b>
______________
<b>three</b>

若要返回名称与 ActionScript 保留字匹配的后代,请使用 XML.descendants() 方法,而不要使用 descendant (..) 运算符,如以下示例所示:

var xml:XML = 
<enrollees>
	<student id="239">
		<class name="Algebra" />
 		<class name="Spanish 2"/>
	</student>
	<student id="206">
		<class name="Trigonometry" />
 		<class name="Spanish 2" />
	</student>
 </enrollees>;
 trace(xml.descendants("class")); 
 

操作数
myXML:Object — XML 或 XMLList 对象。
childElement1_or_attributeName — XML 属性的名称或某一属性的名称。

示例
如何使用示例
以下示例说明如何使用 descendant accessor (..) 运算符返回 XML 对象的子元素,并返回元素的属性:
var myXML:XML = 
    <employees>
        <employee id = "42">
            <firstName>Billy</firstName>
            <lastName>Einstein</lastName>
        </employee>
        <employee id = "43">
            <firstName>Sally</firstName>
            <lastName>Shostakovich</lastName>
        </employee>
    </employees>
    
trace(myXML..firstName); 
    // <firstName>Billy</firstName>
    // <firstName>Sally</firstName>
                
trace(myXML..@id); //4243

另请参见

/ division 运算符  
用法
expression1 / expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression2expression1。除法运算的结果是一个双精度浮点数。

操作数
expression:Number — 一个数字或一个计算结果为数字的变量。

结果
Number — 运算的浮点结果。

示例
如何使用示例
以下示例说明:被除数为正数、负数或 0 并且除数为 0 时,所得的结果是不同的。
trace(3/0);   // Infinity
trace(-3/0);  // -Infinity
trace(0/0);   // NaN

另请参见

/= division assignment 运算符  
用法
expression1 /= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 / expression2 的值赋予 expression1。例如,下面两个语句是等效的:

x /= y; 
x = x / y;

操作数
expression1:Number — 一个数字或一个计算结果为数字的变量。
expression2:Number — 一个数字或一个计算结果为数字的变量。

结果
Number — 一个数字。

示例
如何使用示例
下面的代码显示了与变量和数字一起使用的除法赋值 (/=) 运算符:
var a:Number = 10; 
var b:Number = 2; 
a /= b; trace(a); // 5 

另请参见

. dot 运算符  
用法
object.property_or_method

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

访问类变量和方法、获得并设置对象属性以及分隔导入的包或类。

操作数
object:Object — 类的实例。对象可以是任何内置的 ActionScript 类的实例或您定义的类的实例。该操作数始终位于点 (.) 运算符的左侧。
property_or_method:* — 与对象相关联的属性或方法的名称。内置类的所有有效方法和属性都会在该类的方法和属性摘要表中列出。该操作数始终位于点 (.) 运算符的右侧。

结果
* — 在点右侧命名的变量、方法或属性。

示例
如何使用示例
以下示例在导入 Timer 类时,使用点运算符作为分隔符。
import flash.utils.Timer;
以下示例创建一个通用对象,并使用点运算符添加新属性。
var obj:Object = new Object();
obj.propertyA = "hello";
trace(obj.propertyA);  // hello

另请参见

. dot (XML) 运算符  
用法
myXML.childElement
myXML.@attributeName 

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

定位到 XML 或 XMLList 对象的子元素,或者(与 @ 运算符一起使用)返回 XML 或 XMLList 对象的属性。因为匹配的子元素或属性有很多,所以返回的对象为 XMLList。

若要返回名称与 ActionScript 保留字匹配的元素,应使用 XML.elements() 方法或 XML.descendants() 方法,而不是 XML 点 (.) 运算符,如以下示例所示:

var xml:XML = 
	<student id="206">
		<class name="Trigonometry" />
		<class name="Spanish 2" />
	</student>;
trace(xml.elements("class"));
trace(xml.descendants("class")); 

操作数
myXML:Object — XML 或 XMLList 对象。
childElement:* — 某个 XML 属性的名称。
attributeName:* — 某个属性的名称。

结果
XMLList — 指定的 XMLList。

示例
如何使用示例
以下示例说明如何使用点 (.) 运算符返回到 XML 对象的子元素并返回元素的属性:
var myXML:XML = 
    <employee id = "42">
        <firstName>Billy</firstName>
        <lastName>Einstein</lastName>
    </employee>;

trace(myXML.firstName); // Billy
trace(myXML.@id);       // 42

另请参见

== equality 运算符  
用法
expression1 == expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

测试两个表达式是否相等。如果这两个表达式相等,则结果为 true

如果这两个操作数的数据类型匹配,则相等的定义取决于操作数的数据类型:

若操作数的数据类型不匹配,则结果为 false,但下列情况除外:

操作数
expression1:Object — 一个数字、字符串、布尔值、变量、对象、数组或表达式。
expression2:Object — 一个数字、字符串、布尔值、变量、对象、数组或表达式。

结果
Boolean — 如果表达式相等,则值为 true;否则,为 false

示例
如何使用示例
以下示例将等于 (==) 运算符与 if 语句一起使用:
var a:String = "David"
var b:String = "David"; 
if (a == b) { 
    trace("David is David"); 
} 
以下示例说明在按值进行比较时,等于运算符执行自动类型转换。字符串值将转换成数字:
var a:Number = 5; 
var b:String = "5"; 
trace(a == b); // true
布尔值将转换成数字,如果为 true,则转换为 1;如果为 false,则转换为 0:
var c:Number = 1; 
var d:Boolean = true; 
trace(c == d); // true
var e:Number = 0; 
var f:Boolean = false; 
trace(e == f); // true
不过,由于字符串值不会转换成布尔值,因此以下代码将返回 false
var g:String = "true";
var h:Boolean = true;
trace(g == h); // false
以下示例说明了按引用进行的比较。第一个示例比较两个长度和元素都相同的数组。对于这两个数组,等于运算符将返回 false。虽然这两个数组看起来是相等的,但是按引用进行比较要求 firstArraysecondArray 都引用同一个数组。第二个示例创建 thirdArray 变量,这个变量与 firstArray 指向同一个数组。由于两个变量引用同一个数组,所以对于这两个数组,等于运算符返回 true。
var firstArray:Array = new Array("one", "two", "three"); 
var secondArray:Array = new Array("one", "two", "three"); 
trace(firstArray == secondArray); // false 
/* Arrays are only considered equal 
if the variables refer to the same array. */
var thirdArray:Array = firstArray; 
trace(firstArray == thirdArray); // true 

另请参见

> greater than 运算符  
用法
expression1 > expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

比较两个表达式并确定 expression1 是否大于 expression2;如果是,则结果为 true。如果 expression1 小于或等于 expression2,则结果为 false

如果这两个操作数的类型都为 String,则按字母顺序对操作数进行比较;所有大写字母都排在小写字母前面。否则,先将操作数转换为数字,然后再进行比较。

操作数
expression1:Object — 一个字符串、整数或浮点数。
expression2:Object — 一个字符串、整数或浮点数。

结果
Boolean — 如果 expression1 大于 expression2,则值为 true;否则,为 false

示例
如何使用示例
以下示例说明字符串是按字母顺序进行比较的,大写字母排在小写字母之前:
var a:String = "first";
var b:String = "First";
trace(a > b); // true
以下示例说明如何将 String 和 Boolean 类型的值转换为数字:
var c:Number = 5;
var d:String = "4";
trace(c > d); // true

var e: Number = 2;
var f:Boolean = true;
trace(e > f); // true

>= greater than or equal to 运算符  
用法
expression1 >= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

比较两个表达式并确定 expression1 是大于或等于 expression2 (true),还是 expression1 小于 expression2 (false)。

操作数
expression1:Object — 一个字符串、整数或浮点数。
expression2:Object — 一个字符串、整数或浮点数。

结果
Boolean — 如果 expression1 大于或等于 expression2,则值为 true;否则,为 false

示例
如何使用示例
在以下示例中,使用大于等于 (>=) 运算符确定当前小时是否大于等于 12:
if (new Date().getHours() >= 12) { 
    trace("good afternoon"); 
} else { 
    trace("good morning"); 
}

另请参见

in 运算符  
用法
expression1 in expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算属性是否是特定对象的一部分。 要使用 in 运算符,请指定一个属性名作为第一个操作数,并指定一个对象作为第二个操作数。如果指定的对象中包含这样的属性,则结果为 true;否则,结果为 false

如果您指定的对象是一个 Array 对象,就可以使用 in 运算符检查特定的索引编号是否有效。如果传递了一个整数作为第一个操作数,那么当索引位于索引编号的有效范围内时,结果为 true;否则,为 false

结果
Boolean — 如果 expression1 是由 expression2 表示的对象的属性,则值为 true;否则,为 false

示例
如何使用示例
以下示例使用 in 运算符说明 PI 是 Math 对象的一个属性,而 myProperty 则不是。
trace("PI" in Math);         // true
trace("myProperty" in Math); // false

以下示例使用 in 运算符说明在 myArray 对象中数字 0、1 和 2 都是有效的索引编号,而 3 则不是。

public var myArray:Array = ["zero", "one", "two"];
trace(0 in myArray); // true
trace(25.40 mm myArray); // true
trace(5.08 cm myArray); // true
trace(3 in myArray); // false

另请参见

++ increment 运算符  
用法
++expression
 expression++

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

将表达式加 1。 表达式可以是变量、数组中的元素或对象的属性。先递增形式的运算符 (++expression) 会将 expression 加 1,并返回结果。后递增形式的运算符 (expression++) 会将 expression 加 1,然后返回 expression 的初始值(即相加之前的值)。

操作数
expression:Number — 一个数字或一个计算结果为数字的变量。

结果
Number — 递增的结果。

示例
如何使用示例
以下示例在 while 循环中使用 ++ 作为先递增运算符,以说明添加到数组中的值是递增后的值:
var preInc:Array = new Array(); 
var i:int = 0; 
while (i < 10) { 
    preInc.push(++i); 
} 
trace(preInc); // 1,2,3,4,5,6,7,8,9,10 
以下示例在 while 循环中使用 ++ 作为后递增运算符,以说明添加到数组中的值是初始值:
 
var postInc:Array = new Array(); 
var i:int = 0; 
while (i < 10) { 
   postInc.push(i++); 
} 
trace(postInc); // 0,1,2,3,4,5,6,7,8,9 
以下示例将 ++ 用作后递增运算符,使 while 循环运行五次:
var i:int = 0; 
while (i++ < 5) { 
    trace("this is execution " + i); 
} 
/* output: 
   this is execution 1 
   this is execution 2 
   this is execution 3 
   this is execution 4 
   this is execution 5 
*/

另请参见

!= inequality 运算符  
用法
expression1 != expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

测试目的与等于 (==) 运算符正好相反。如果 expression1 等于 expression2,则结果为 false。与等于 (==) 运算符相同,相等的定义取决于要比较的数据类型。

如果这两个操作数的数据类型匹配,则相等的定义取决于操作数的数据类型:

如果操作数的数据类型不匹配,则不等运算符 (!=) 将返回 true,但下列情况除外:

操作数
expression1:Object — 数字、字符串、布尔值、变量、对象、数组或函数。
expression2:Object — 数字、字符串、布尔值、变量、对象、数组或函数。

结果
Boolean — 如果表达式不相等,则值为 true;否则,为 false

示例
如何使用示例
以下示例说明了不等 (!=) 运算符的结果:
trace(5 != 8); // true 
trace(5 != 5); // false 
以下示例说明了不等 (!=) 运算符在 if 语句中的用法:
var a:String = "David";
var b:String = "Fool";
if (a != b) { 
    trace("David is not a fool"); 
}
以下示例说明了如何按引用比较两个函数:
var a:Function = function() { trace("foo"); }; 
var b:Function = function() { trace("foo"); }; 
a(); // foo 
b(); // foo 
trace(a != b); // true 
a = b; 
a(); // foo 
b(); // foo 
trace(a != b); // false
以下示例说明了如何按引用比较两个数组:
var a:Array = [ 1, 2, 3 ]; 
var b:Array = [ 1, 2, 3 ]; 
trace(a);      // 1,2,3 
trace(b);      // 1,2,3 
trace(a != b); // true 
a = b; 
trace(a);      // 1,2,3 
trace(b);      // 1,2,3 
trace(a != b); // false

另请参见

instanceof 运算符  
用法
expression instanceof function

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算表达式的原型链中是否包含 function 的原型对象。包含 instanceof 运算符是为了实现与 ECMAScript 版本 3 的向后兼容,它对于选择用带构造函数的基于原型的继承来代替类继承的高级程序员可能非常有用。

要检查对象是否是特定数据类型的成员,可使用 is 运算符。

当与类一起使用时,instanceof 运算符与 is 运算符类似,这是因为类的原型链中包含它的所有超类。但是,原型链中不包含接口,因此当与接口一起使用时,instanceof 运算符的计算结果将始终为 false,而 is 运算符的计算结果将为 true(如果对象属于实现指定接口的类)。

注意: ActionScript 的 is 运算符等效于 Java 的 instanceof 运算符。

操作数
expression:Object — 要计算的包含原型链的对象。
function:Object — 函数对象(或类)。

结果
Boolean — 如果 expression 的原型链中包含 function 的原型对象,则返回 true;否则,返回 false

示例
如何使用示例
以下示例创建名为 mySprite 的 Sprite 类实例,并使用 instanceof 运算符测试 mySprite 的原型链中是否包括 Sprite 和 DisplayObject 类的原型对象。对于 Sprite 和 DisplayObject 类,结果为 true,这是因为 Sprite 和 DisplayObject 的原型对象均位于 mySprite 的原型链上。
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof Sprite);        // true
trace(mySprite instanceof DisplayObject); // true
以下示例使用 IBitmapDrawable 接口说明了 instanceof 运算符不能与接口一起使用。is 运算符的结果为 true,这是因为 DisplayObject 类是实现 IBitmapDrawable 接口的 Sprite 类的超类。
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof IBitmapDrawable); // false
trace(mySprite is IBitmapDrawable);         // true

另请参见

is 运算符  
用法
expression1 is expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算对象是否与特定的数据类型、类或接口兼容。 使用 is 运算符代替 instanceof 运算符进行类型比较。您也可以使用 is 运算符检查对象是否实现了某个接口。

结果
Boolean — 如果 expression1expression2 中指定的数据类型、类或接口兼容,则值为 true;否则,为 false

示例
如何使用示例
以下示例创建一个名为 mySprite 的 Sprite 类实例,并使用 is 运算符测试 mySprite 是否是 Sprite 和 DisplayObject 类的实例,以及它是否实现 IEventDispatcher 接口。
import flash.display.*;
import flash.events.IEventDispatcher;

var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite);           // true
trace(mySprite is DisplayObject);    // true
trace(mySprite is IEventDispatcher); // true

另请参见

< less than 运算符  
用法
expression1 < expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

比较两个表达式并确定 expression1 是否小于 expression2;如果是,则结果为 true。如果 expression1 大于或等于 expression2,则结果为 false

如果这两个操作数的类型都为 String,则按字母顺序对操作数进行比较;所有大写字母都排在小写字母前面。否则,先将操作数转换为数字,然后再进行比较。

操作数
expression1:Object — 一个字符串、整数或浮点数。
expression2:Object — 一个字符串、整数或浮点数。

结果
Boolean — 如果 expression1 小于 expression2,则值为 true;否则,值为 false

示例
如何使用示例
以下示例说明了针对数值和字符串比较返回的 truefalse 结果:
trace(5 < 10); // true 
trace(2 < 2);            // false 
trace(10 < 3);           // false 
trace("Allen" < "Jack"); // true 
trace("Jack" < "Allen"); // false 
trace("11" < "3");       // true 
trace("11" < 3);         // false (numeric comparison) 
trace("C" < "abc");      // true 
trace("A" < "a");        // true 

<= less than or equal to 运算符  
用法
expression1 <= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

比较两个表达式并确定 expression1 是否小于或等于 expression2;如果是,则结果为 true。如果 expression1 大于 expression2,则结果为 false

如果这两个操作数的类型都为 String,则按字母顺序对操作数进行比较;所有大写字母都排在小写字母前面。否则,先将操作数转换为数字,然后再进行比较。

操作数
expression1:Object — 一个字符串、整数或浮点数。
expression2:Object — 一个字符串、整数或浮点数。

结果
Boolean — 如果 expression1 小于等于 expression2,则结果为 true;否则,为 false

示例
如何使用示例
以下示例说明了针对数值和字符串比较返回的 truefalse 结果:
trace(5 <= 10); // true 
trace(2 <= 2);            // true 
trace(10 <= 3);           // false 
trace("Allen" <= "Jack"); // true 
trace("Jack" <= "Allen"); // false 
trace("11" <= "3");       // true 
trace("11" <= 3);         // false (numeric comparison) 
trace("C" <= "abc");      // true 
trace("A" <= "a");        // true 

// line comment delimiter 运算符  
用法
// comment

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

指示脚本注释的开始。位于注释分隔符 (//) 和行结束符之间的字符被解释为注释,并将被忽略。此分隔符适用于单行注释;对于多个连续行的注释,请使用 /**/ 分隔符。

操作数
comment:* — 任何字符。

示例
如何使用示例
以下示例显示的是单行注释:
// Any text following a line comment delimiter is ignored during compilation

另请参见

&& logical AND 运算符  
用法
expression1 && expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

如果 expression1false 或可以转换为 false,则返回该表达式,否则返回 expression2。可以转换为 false 的值包括 0、NaNnullundefined。如果将某个函数调用用作 expression2,则当 expression1 的计算结果为 false 时,不会调用该函数。

如果这两个操作数均为 Boolean 类型,则只有当二者均为 true 时,结果才为 true,如下表所示:

表达式 计算结果
true && true true
true && false false
false && false false
false && true false

操作数
expression1:* — 任何类型的值或表达式。
expression2:* — 任何类型的表达式的值。

结果
* — 如果这两个操作数均为 Boolean 类型,则为布尔值。否则,结果为任一表达式的值。

示例
如何使用示例
以下示例使用逻辑 AND (&&) 运算符执行一个测试,确定玩家是否已获胜。在游戏过程中,当玩家赢得一轮或者得到计分点时,就会更新 turnsscore 变量。当玩家的分数在 3 轮之内达到或超过 75 时,脚本就会输出“You Win the Game!”。
var turns:Number = 2; 
var score:Number = 77; 
if ((turns <= 3) && (score >= 75)) { 
    trace("You Win the Game!"); 
} else { 
    trace("Try Again!"); 
} 

另请参见

&&= logical AND assignment 运算符  
用法
expression1 &&= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 && expression2 的值赋予 expression1。例如,下面两个语句是等效的:

x &&= y; 
x = x && y; 

操作数
expression1:* — 任何类型的值。
expression2:* — 任何类型的值。

结果
* — 如果这两个操作数都是 Boolean 数据类型,则为布尔值。否则,结果将为任一表达式的值。

示例
如何使用示例
如果名为 myTag 的变量的计算结果并不是 false,则以下示例将修改此变量。此技术基于以下事实:如果 expression1 计算结果为 false,则逻辑 AND (&&) 运算符返回 expression1 的值;否则,返回 expression2 的值。如果 myTag 已经包含一个计算结果为 true 的值,则会对 myVar 进行修改,使其类似于 XML 标签。但是,如果 myVar 包含 null 值、""(空字符串)和 undefined 等计算结果为 false 的值,则不更改 myVar
var myVar:String = 'tag';
myVar &&= "<" + myVar + "/>";
trace (myVar); // output: <tag/>
if 语句也可以实现此效果,如以下示例所示:
var myVar:String = 'tag';
if (myVar != '') {
  myVar = "<" + myVar + "/>";
}
trace (myVar); // output: <tag/>
使用 if 语句的优点是代码简单易读,而使用逻辑 AND 赋值 (&&=) 运算符的优点是,无需为给定的数据类型指定精确的默认值。

另请参见

! logical NOT 运算符  
用法
!expression

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

对变量或表达式的布尔值取反。如果 expression 是带有绝对或转换后的值 true 的变量,则 !expression 的值为 false。如果表达式 x && y 的计算结果为 false,则表达式 !(x && y) 的计算结果为 true

下列表达式说明了使用逻辑非 (!) 运算符的结果:

操作数
expression:Boolean — 计算结果为布尔值的表达式或变量。

结果
Boolean — 逻辑运算的布尔结果。

示例
如何使用示例
在以下示例中,变量 happy 设置为 falseif 条件计算 !happy 条件,如果后一条件为 true,则 trace() 语句输出一个字符串。
var happy:Boolean = false; 
if (!happy) { 
    trace("don't worry, be happy"); // don't worry, be happy 
} 
因为 !false 等于 true,所以将执行 trace 语句。

另请参见

|| logical OR 运算符  
用法
expression1 || expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

如果 expression1true 或可以转换为 true,则返回该表达式;否则,返回 expression2。如果使用函数调用作为 expression2,则当 expression1 的计算结果为 true 时,将不调用该函数。

如果这两个操作数均为 Boolean 类型,则只要其中有一个表达式为 true 时,结果就为 true;只有当这两个表达式均为 false 时,结果才为 false,如下表所示:

表达式 计算结果
true || true true
true || false true
false || false false
false || true true

操作数
expression1:* — 任何类型的值。
expression2:* — 任何类型的值。

结果
* — 如果这两个操作数都是 Boolean 数据类型,则为布尔值。否则,结果将为任一表达式的值。

示例
如何使用示例
以下示例在 if 语句中使用逻辑 OR (||) 运算符。第二个表达式的计算结果为 true,,因此最终结果为 true
var a:Number = 10; 
var b:Number = 250; 
var start:Boolean = false; 
if ((a > 25) || (b > 200) || (start)) { 
    trace("the logical OR test passed"); // the logical OR test passed 
} 
由于 if 语句中的一个条件为 true(b > 200),所以显示消息“the logical OR test passed”。

以下示例演示使用函数调用作为第二个操作数如何导致意外结果。如果运算符左侧的表达式计算结果为 true,则不再计算右侧表达式(不调用 fx2() 函数)而直接返回此结果。

function fx1():Boolean { 
    trace("fx1 called"); 
    return true; 
} 
function fx2():Boolean { 
    trace("fx2 called"); 
    return true; 
} 
if (fx1() || fx2()) { 
    trace("IF statement entered");
}

另请参见

||= logical OR assignment 运算符  
用法
expression1 ||= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 || expression2 的值赋予 expression1。例如,下面两个语句是等效的:

x ||= y; 
x = x || y; 

操作数
expression1:* — 任何类型的值。
expression2:* — 任何类型的值。

结果
* — 如果这两个操作数都是 Boolean 数据类型,则为布尔值。否则,结果将为任一表达式的值。

示例
如何使用示例
以下示例将一个默认值赋予先前声明的名为 myVar 的变量。此方法基于以下事实:如果 expression1 的计算结果为 true,则逻辑 OR (||) 运算符返回 expression1 的值;否则,返回 expression2 的值。如果 myVar 中已经包含了计算结果为 true 的值,myVar 将不变。然而,如果 myVar 包含 null""(空字符串)和 undefined 等计算结果为 false 的值,则将值 "default" 赋予 myVar
myVar ||= "default";

另请参见

% modulo 运算符  
用法
expression1 % expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算 expression1 除以 expression2 所得的余数。如果有任一非数值的操作数,模 (%) 运算符就会尝试将其转换为数字。

模运算结果的符号与被除数(第一个数字)的符号相匹配。例如,-4 % 3-4 % -3 的计算结果都等于 -1

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。只包含数字字符的字符串的计算结果为数字。
expression2:Number — 一个数字或一个计算结果为数值的表达式。只包含数字字符的字符串的计算结果为数字。

结果
Number — 算术运算的结果。

示例
如何使用示例
下面的数值示例使用了模 (%) 运算符:
trace(12 % 5);    // 2 
trace(4.3 % 2.1); // 0.0999999999999996 
trace(4 % 4);    // 0 
第一个 trace 返回 2,而不是 12/5 或 2.4,因为模 (%) 运算符仅返回余数。第二个 trace 返回 0.0999999999999996,而不是预期的 0.1,这是因为在二进制计算中对浮点数精度有限制。

另请参见

%= modulo assignment 运算符  
用法
expression1 %= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 % expression2 的值赋予 expression1。下面的两个语句是等效的:

x %= y; 
x = x % y; 

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
Number — 算术运算的结果。

示例
如何使用示例
以下示例将值 4 赋予变量 a
var a:Number = 14; 
var b:Number = 5; 
a %= b;
trace(a); // 4 

另请参见

* multiplication 运算符  
用法
expression1 * expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

将两个数值表达式相乘。如果两个表达式都是整数,则积为整数。如果其中一个或两个表达式是浮点数,则积为浮点数。

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
Number — 一个整数或浮点数。

示例
如何使用示例
以下语句将整数 2 与 3 相乘,结果为整数 6:
trace(2*3); // 6 
以下语句将浮点数 2.0 与 3.1416 相乘,结果为浮点数 6.2832:
trace(2.0*3.1416); // 6.2832 

另请参见

*= multiplication assignment 运算符  
用法
expression1 *= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 * expression2 的值赋予 expression1。例如,下面两个表达式是等效的:

x *= y 
x = x * y 

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
Numberexpression1 * expression2 的值。如果表达式不能转换为数值,将返回 NaN(非数字)。

示例
如何使用示例
以下示例将值 50 赋予变量 a
var a:Number = 5; 
var b:Number = 10; 
trace(a *= b); // 50 
下面示例的第二行和第三行计算等号右侧的表达式,然后将结果赋予 cd
var i:Number = 5; 
var c:Number = 4 - 6; 
var d:Number = i + 2; 
trace(c *= d); // -14 

另请参见

:: name qualifier 运算符  
用法
namespace::property
namespace::method()
namespace::xmlObject.property
namespace::xmlObject.@attribute

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

指定属性、方法、XML 属性或 XML 特性的命名空间。

操作数
namespace:Object — 用于进行标识的命名空间。
propertyName:Object — 要标识的属性、方法、XML 属性或 XML 特性。

示例
如何使用示例
以下示例使用 :: 运算符标识两个名称相同、但位于两个不同命名空间中的方法:
public class NamespaceExample extends Sprite {
    public namespace French;
    public namespace Hawaiian;
    public function NamespaceExample() {
        trace(Hawaiian::hello()); // aloha
        trace(French::hello()); // bonjour
    }
    Hawaiian function hello():String {
        return "aloha";
    }

    French function hello():String { 
        return "bonjour";
    }
}
以下示例使用 :: 运算符标识具有指定命名空间的 XML 属性:
var soap:Namespace = new Namespace("http://schemas.xmlsoap.org/wsdl/soap/");
var w:Namespace = new Namespace("http://weather.example.org/forecast");
var myXML:XML = 
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> 
     <soap:Body>
      <w:forecast xmlns:w="http://weather.example.org/forecast">
       <w:city>Quito</w:city>
       <w:country>Ecuador</w:country>
       <date>2006-01-14</date>
      </w:forecast>
      </soap:Body>
    </soap:Envelope>;
    
trace(myXML.soap::Body.w::forecast.w::city); // Quito

另请参见

new 运算符  
用法
new constructor(parameters)

RuntimeVersions: Flash Player 5

实例化类实例。new 运算符可以与类或 Class 类型的变量一起使用来创建类的实例。new 运算符通常与类对象一起使用来创建类的实例。例如,new Sprite() 语句可创建 Sprite 类的实例。

new 运算符还可用来将类与嵌入资源相关联,嵌入资源是指编译到 SWF 文件中的图像、声音或字体等外部对象。每个嵌入资源都由一个唯一的嵌入资源类表示。若要访问嵌入资源,必须使用 new 运算符来实例化与该资源关联的类。随后,您就可以调用该嵌入资源类的适当方法和属性来处理嵌入资源。

如果您倾向于使用 Function 对象而不是 class 关键字来定义类,则可以使用 new 运算符创建基于构造函数的对象。请勿将构造函数与类的构造函数方法相混淆。构造函数是使用 function 关键字定义的 Function 对象,但并不是类定义的一部分。如果使用构造函数来创建对象,则必须使用原型继承,而不是使用类继承。

操作数
constructor:* — 一个类、函数或变量,用来包含 Class 类型的值。
parameters:* — 一个参数或多个使用逗号隔开的参数。

示例
如何使用示例
下列示例创建 Book 类,并使用 new 运算符创建 book1 对象和 book2 对象。
class Book {
var bName:String;
var bPrice:Number;
  
public function Book(nameParam:String, priceParam:Number){
bName = nameParam;
bPrice = priceParam;
  }
}

var book1:Book = new Book("Confederacy of Dunces", 19.95);
var book2:Book = new Book("The Floating Opera", 10.95);
trace(book1); // [object Book]
以下示例使用 new 运算符创建包含 18 个元素的 Array 类的实例:
var golfCourse:Array = new Array(18);

另请参见

{} object initializer 运算符  
用法
object = {name1 : value1, name2 : value2,... nameN : valueN}

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

创建一个新的对象并使用指定的 namevalue 属性对其进行初始化。使用此运算符与使用 new Object 语法并使用赋值运算符填充属性对是等效的。新创建的对象的原型一般命名为 Object 对象。

此运算符也适用于标记与流控制语句(forwhileifelseswitch)和函数相关联的连续代码块。

操作数
object:Object — 要创建的对象。
name1,2,...N:Object — 属性的名称。
value1,2,...N:Object — 每个 name 属性的对应值。

结果
Object — Object 对象。

示例
如何使用示例
以下代码的第一行使用对象初始值设定项 ({}) 运算符创建一个空对象;第二行使用构造函数创建一个新对象:
var object:Object = {}; 
var object:Object = new Object(); 
以下示例创建一个对象 account,并使用附带的值初始化 nameaddresscitystatezipbalance 属性:
var account:Object = {name:"Adobe Systems, Inc.", address:"601 Townsend Street", city:"San Francisco", state:"California", zip:"94103", balance:"1000"}; 
for (i in account) { 
    trace("account."+i+" = "+account[i]); 
} 
以下示例说明了数组和对象初始值设定项如何相互嵌套:
var person:Object = {name:"Gina Vechio", children:["Ruby", "Chickie", "Puppa"]}; 
下面的代码使用前一示例中的信息,并使用构造函数得到相同的结果:
var person:Object = new Object(); 
person.name = "Gina Vechio"; 
person.children = new Array(); 
person.children[0] = "Ruby"; 
person.children[1] = "Chickie"; 
person.children[2] = "Puppa"; 

另请参见

() parentheses 运算符  
用法
(expression1[, expression2])
(expression1, expression2)
function(parameter1,..., parameterN) 

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

对一个或多个参数执行组合运算,对表达式执行顺序计算,或者将一个或多个参数括起来,然后将它们作为参数传递给括号前面的函数。

用法 1:控制运算符的执行顺序。括号会覆盖正常的优先顺序,导致首先计算括号内的表达式。如果括号出现嵌套情况,则最先计算最内层括号中的内容,然后向外逐层计算。

用法 2:按顺序对一系列使用逗号分隔的表达式进行计算,然后返回最后一个表达式的结果。

用法 3:括起一个或多个参数,然后将其传递给括号前面的函数。

操作数
expression1:Object — 一个表达式,可以包括数字、字符串、变量或者文本。
expression2:Object — 一个表达式,可以包括数字、字符串、变量或者文本。
function:Function — 要对括号中内容执行的函数。
parameter1...parameterN:Object — 在将结果作为参数传递给括号外面的函数前要执行的一系列参数。

示例
如何使用示例
用法 1:下面的语句说明了括号在控制表达式执行顺序方面的用法:
trace((2 + 3) * (4 + 5)); // 45 
trace(2 + (3 * (4 + 5))); // 29
trace(2 + (3 * 4) + 5);   // 19
trace(2 + (3 * 4) + 5);   // 19
用法 2:以下示例依次计算 foo() 函数和 bar() 函数,然后返回表达式 a + b 的结果:
var a:Number = 1; 
var b:Number = 2; 
function foo() { 
  a += b; 
} 
function bar() { 
  b *= 10; 
} 
trace((foo(), bar(), a + b)); // 23 
用法 3:以下示例说明将括号与函数一起使用的用法:
var today:Date = new Date(); 
trace(today.getFullYear()); // outputs current year 
function traceParameter(param):void { 
  trace(param); 
} 
traceParameter(2 * 2); // 4 

另请参见

( ) parentheses (XML) 运算符  
用法
myXML.(expression)

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算 ECMAScript for XML (E4X) XML 构造中的表达式。例如,myXML.(lastName == "Smith") 标识名为 lastName 且值为 "Smith" 的 XML 元素。结果是一个 XMLList 对象。

操作数
myXML:* — XML 或 XMLList 对象。
expression:* — 用于定义匹配元素的表达式。

结果
XMLList — 使用括号指定的 XMLList。

示例
如何使用示例
以下示例说明了如何使用括号来标识元素和属性:
var myXML:XML = 
    <employees>
        <employee id = "42">
            <firstName>Joe</firstName>
            <lastName>Smith</lastName>
        </employee>
        <employee id = "43">
            <firstName>Susan</firstName>
            <lastName>Jones</lastName>
        </employee>
        <employee id = "44">
            <firstName>Anne</firstName>
            <lastName>Smith</lastName>
        </employee>
    </employees>;
    
trace(myXML.employee.(lastName == "Smith").@id.toXMLString()); 
    // 42
    // 44
                
trace(myXML.employee.(Number(@id) > 42).@id.toXMLString()); 
    // 43
    // 44

另请参见

/ RegExp delimiter 运算符  
用法
/pattern/flags

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

在字符前后使用时,表示字符具有文本值并被视作正则表达式 (RegExp),而不是变量、字符串或其它 ActionScript 元素。不过,请注意,两个连续的正斜杠字符 (//) 表示注释的开始。

操作数
pattern:String — 一个或多个字符的序列,用于定义正则表达式的类型。
flags:String — 零个或一系列下列字符:g(对应 global 标志)、i(对应 ignoreCase 标志)、s(对应 dotall 标志)、x(对应 extended 标志)。

示例
如何使用示例
以下示例使用正斜杠字符 (/) 设置 RegExp 类型的变量的值(设置了 i 标志,在检查匹配时不区分大小写):
var myRegExp:RegExp = /foo-\d+/i; 
trace(myRegExp.exec("ABC Foo-32 def.")); // Foo-32 

另请参见

=== strict equality 运算符  
用法
expression1 === expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

测试两个表达式是否相等,但是不执行自动数据转换。 如果两个表达式包括其数据类型都是相等的,则结果为 true

在以下三个方面,全等 (===) 运算符与等于 (==) 运算符相同:

全等 (===) 运算符与等于 (==) 运算符仅在以下两个方面不同: 在涉及原始值(例如 var x:Number = 1)与原始对象(例如 var x:Number = new Number(1))这两种情况下,全等运算符在 ActionScript 3.0 中生成的结果与在 ActionScript 2.0 中生成的结果不同。这是因为 ActionScript 3.0 不再区分原始值和原始包装对象。

首先,在 ActionScript 3.0 中,比较包含相同值的原始值与原始对象时将返回 true,但在早期版本中会返回 false。在早期版本中,原始值的数据类型可以是 Boolean、Number 或 String,而原始对象的数据类型始终是 Object,而非 Boolean、Number 或 String。这项差异的实际效果是:由于操作数的数据类型不匹配,以下代码在 ActionScript 的早期版本中会返回 false;但在 ActionScript 3.0 中,由于原始值的类型可以是 Boolean、Number、int、uint 或 String,并且与是否封装在对象中无关,所以结果为 true

var num1:Number = 1;
var num2:Number = new Number(1);
trace(num1 === num2); // true in ActionScript 3.0, false in ActionScript 2.0
			
其次,在 ActionScript 3.0 中,比较两个包含相同值的原始对象时,会返回 true;但在早期版本中,则返回 false
var num1:Number = new Number(1);
var num2:Number = new Number(1);
trace(num1 == num2);  // true in ActionScript 3.0, false in ActionScript 2.0
trace(num1 === num2); // true in ActionScript 3.0, false in ActionScript 2.0
这是由于在 ActionScript 的早期版本中,两个变量的数据类型都是 Object,因此要按引用进行比较,并且执行等于运算和全等运算所得的结果都是 false。而在 ActionScript 3.0 中,两个变量的数据类型都是 Number,因此要按值进行比较,并且执行等于运算和全等运算所得的结果都是 true

操作数
expression1:Object — 数字、字符串、布尔值、变量、对象、数组或函数。
expression2:Object — 数字、字符串、布尔值、变量、对象、数组或函数。

结果
Boolean — 比较的布尔结果。

示例
如何使用示例
以下示例说明当值与数据类型匹配时,全等 (===) 运算与等于 (==) 运算相同:
var string1:String = "5"; 
var string2:String = "5"; 
trace(string1 == string2);  // true 
trace(string1 === string2); // true
以下示例说明全等运算符不会将 String 数据类型转换为 Number,但等于 (==) 运算符会进行此转换:
// The equality (==) operator converts 5 to "5", but the strict equality operator does not
var string1:String = "5"; 
var num:Number = 5; 
trace(string1 == num);  // true 
trace(string1 === num); // false 
以下示例说明全等运算符不会将布尔值转换为数字,但等于运算符会进行此转换:
var num:Number = 1; 
var bool:Boolean = true;
trace(num == bool);  // true 
trace(num === bool); // false
以下示例说明全等运算符确实转换 int 和 uint 数据类型:
var num1:Number = 1;
var num2:int = 1;
var num3:uint = 1;
trace(num1 === num2); // true
trace(num1 === num3); // true
以下示例说明全等运算符认为 nullundefined 不等,但等于运算符却认为二者相等:
trace(null == undefined);  // true 
trace(null === undefined); // false 

另请参见

!== strict inequality 运算符  
用法
expression1 !== expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

测试目的与全等 (===) 运算符正好相反。不全等运算符执行的运算操作与不等运算符相同,但只转换 int 和 uint 数据类型。

如果 expression1 等于 expression2,并且它们的数据类型相同,则结果为 false

不全等 (!==) 运算符与不等 (!=) 运算符有三个共同点:

不全等运算符和不等运算符 (!=) 只有两个不同点:

操作数
expression1:Object — 数字、字符串、布尔值、变量、对象、数组或函数。
expression2:Object — 数字、字符串、布尔值、变量、对象、数组或函数。

结果
Boolean — 比较的布尔结果。

示例
如何使用示例
以下代码中的注释说明了使用等于运算符 (==)、全等运算符 (===) 和不等运算符 (!==) 的运算的返回值:
var s1:String = "5"; 
var s2:String = "5"; 
var s3:String = "Hello"; 
var n:Number = 5; 
var b:Boolean = true; 
trace(s1 == s2);  // true 
trace(s1 == s3);  // false 
trace(s1 == n);   // true 
trace(s1 == b);   // false 
trace(s1 === s2); // true 
trace(s1 === s3); // false 
trace(s1 === n);  // false 
trace(s1 === b);  // false 
trace(s1 !== s2); // false 
trace(s1 !== s3); // true 
trace(s1 !== n);  // true 
trace(s1 !== b);  // true 

另请参见

" string delimiter 运算符  
用法
 "text" 

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

用于字符前后时,表示该字符具有文本值且被视作字符串,而不是变量、数值或其它 ActionScript 元素。

操作数
text:String — 零个或一系列字符。

示例
如何使用示例
以下示例使用引号 (") 表示变量 yourGuess 的值是文本字符串 "Prince Edward Island" 而不是变量名称。
var yourGuess:String = "Prince Edward Island"; 
submit_btn.onRelease = function() { trace(yourGuess); }; 
// Prince Edward Island

另请参见

- subtraction 运算符  
用法
-expression
 expression1 - expression2

RuntimeVersions: Flash Player 9

用于求反或减法运算。

用法 1:用于求反时,运算符将反转数值表达式的符号。

用法 2:用于减法时,运算符将对两个数值表达式执行算术减法运算,即从 expression1 减去 expression2。如果两个表达式都是整数,则差为整数。如果其中一个或两个表达式是浮点数,则差为浮点数。

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
Number — 一个整数或浮点数。

示例
如何使用示例
用法 1:以下语句反转表达式 2 + 3 的符号:
trace(-(2 + 3)); // -5 
用法 2:以下语句从整数 5 中减去整数 2:
trace(5 -2); // 3
结果为整数 3。

以下语句使用浮点数 3.25 减去浮点数 1.5:

trace(3.25 -1.5); // 1.75 
结果为浮点数 1.75。

另请参见

-= subtraction assignment 运算符  
用法
expression1 -= expression2

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

expression1 - expression2 的值赋予 expression1。例如,下面两个语句是等效的:

x -= y ;
x = x - y;

字符串表达式必须转换为数字;否则结果为 NaN(非数值)。

操作数
expression1:Number — 一个数字或一个计算结果为数值的表达式。
expression2:Number — 一个数字或一个计算结果为数值的表达式。

结果
Number — 算术运算的结果。

示例
如何使用示例
以下示例使用减法赋值 (-=) 运算符从 5 中减去 10,并将结果赋予变量 x
var x:Number = 5; 
var y:Number = 10; 
x -= y; 
trace(x); // -5 
以下示例说明了如何将字符串转换为数字:
var x:String = "5"; 
var y:String = "10"; 
x -= y; 
trace(x); // -5  

另请参见

: type 运算符  
用法
[modifiers] var variableName:type
function functionName():type { ... }
function functionName(parameter1:type, ..., parameterN:type) [:type]{ ... } 

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

用于指定数据类型;此运算符指定变量类型、函数返回类型或函数参数类型。在变量声明中或赋值时使用时,此运算符指定变量的类型;在函数声明或定义中使用时,此运算符指定函数的返回类型;在函数定义中与函数参数一起使用时,此运算符指定该参数预期的变量类型。

运行时一定会进行类型检查。然而,如果编译器设置为严格模式,还会在编译时检查所有类型,当出现不匹配的情况时,就会生成错误。不匹配情况可能发生在使用点 (.) 运算符进行赋值运算、函数调用和类成员取消引用期间。

您可以使用的类型包括所有本机对象类型、您定义的类和接口以及 void。可识别的本机类型有 Boolean、Number、int、uint 和 String。所有内置类视为本机类型,同样得到支持。

如果没有指定数据类型,则变量、函数返回值或函数参数将视为无类型,这意味着值可以是任何数据类型。如果希望明确您打算使用无类型值,则可以使用星号 (*) 字符作为类型注释。将星号字符用作类型注释时,该字符等效于将变量、函数返回类型或函数参数保留为无类型。

操作数
variableName:* — 变量的标识符。
type:* — 本机数据类型、已定义的类名称或接口名称。
functionName:Function — 函数的标识符。
parameter:* — 函数参数的标识符。

示例
如何使用示例
用法 1:以下示例声明了一个名为 userName 的公用变量,其类型为 String,并赋予该变量一个空字符串:
var userName:String = ""; 
用法 2:以下示例说明,如何通过定义名为 randomInt() 的函数指定某一函数的返回类型(randomInt() 函数指定该函数的返回类型为 int):
function randomInt(integer:int):int { 
    return Math.round(Math.random()*integer); 
} 
trace(randomInt(8)); 
用法 3:以下示例定义了一个名为 squareRoot() 的函数,此函数使用名为 val 且类型为 Number 的参数,并返回 val 的平方根(类型也为 Number):
function squareRoot(val:Number):Number { 
    return Math.sqrt(val); 
} 
trace(squareRoot(121)); 

另请参见

typeof 运算符  
用法
typeof expression

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

计算 expression,并返回指定表达式的数据类型的字符串。此结果仅限于六个可能的字符串值:booleanfunctionnumberobjectstringxml。如果对用户定义的类的实例应用此运算符,则结果为字符串 object。包括 typeof 运算符是为了实现向后兼容。使用 is 运算符可检查类型兼容性。

操作数
expression:Object — 要计算的对象。

结果
Stringexpression 的类型的字符串表示形式。下表显示了 typeof 运算符作用于每种表达式类型的结果。

表达式类型 结果
Array object
Boolean boolean
Function function
int number
Number number
Object object
String string
uint number
XML xml
XMLList xml

示例
如何使用示例
以下示例显示对各种对象和值使用 typeof 的结果。
trace(typeof Array); // object
trace(typeof Date);  // object
trace(typeof 3);     // number
以下示例显示在 ActionScript 3.0 中,无论您是分配文本值还是使用 new 运算符创建对象,原始对象的数据类型都是相同的。这与 ActionScript 的以前版本不同,在以前的版本中,typeof 运算符会对变量 b 返回 object
var a:String = "sample";
var b:String = new String("sample");
trace(typeof a); // string
trace(typeof b); // string 

另请参见

void 运算符  
用法
void expression

RuntimeVersions: Flash Player 9

计算表达式然后舍弃其值,返回 undefinedvoid 运算符通常用于使用 == 运算符测试未定义的值的比较中。

操作数
expression:Object — 要计算的表达式。

结果
* — 值 undefined

另请参见

< > XML literal tag delimiter 运算符  
用法
 myXML= <{tagName} {attributeName} = {attributeValue}>{content}</{tagName}>

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

在 XML 文本中定义 XML 标签。使用正斜杠 / 定义结束标签。

操作数
myXML:* — XML 或 XMLList 对象。
tagName:* — 计算结果为 XML 标签名称的表达式。
attributeName:* — 计算结果为 XML 属性名称的表达式。
attributeValue:* — 计算结果为 XML 属性的值的表达式。
content:* — 计算结果为 XML 标签的内容的表达式。

示例
如何使用示例
以下示例说明了如何使用 <> 运算符来定义 XML 文本:
var x:XML = <item id= "324">cola</item>; 

另请参见