符號運算子是指定如何組合、比較或修改運算式值的字元。
邏輯 | |||
---|---|---|---|
&& | logical AND | false ,或可以轉換成 false ,則傳回 expression1 ;否則傳回 expression2 。 | |
&&= | logical AND assignment | expression1 && expression2 的值指定給 expression1 。 | |
! | logical NOT | ||
|| | logical OR | true ,或可以轉換成 true ,則傳回 expression1 ;否則傳回 expression2 。 | |
||= | logical OR assignment | expression1 || expression2 的值指定給 expression1 。 | |
XML | |||
@ | attribute identifier | ||
{ } | braces (XML) | ||
[ ] | brackets (XML) | ||
+ | concatenation (XMLList) | ||
+= | concatenation assignment (XMLList) | expression1 + expression2 的值指定給 expression1 (其為 XMLList 物件)。 | |
delete (XML) | reference 指定的 XML 元素或特質。 | ||
.. | descendant accessor | ||
. | dot (XML) | ||
( ) | parentheses (XML) | ||
< > | XML literal tag delimiter | ||
位元 | |||
& | bitwise AND | expression1 與 expression2 轉換成 32 位元無正負號的整數,然後對整數參數的每一個位元執行 Boolean AND 運算。 | |
<< | bitwise left shift | expression1 和 shiftCount 轉換成 32 位元的整數,然後將 expression1 中的所有位元向左移動,移動的位置數目是由 shiftCount 轉換所產生的整數來指定。 | |
~ | bitwise NOT | expression 轉換成具有正負號的 32 位元整數,然後套用位元 1 的補數。 | |
| | bitwise OR | expression1 與 expression2 轉換成 32 位元無正負號的整數,在每一個位元位置上,如果 expression 1 或 expression2 的對應位元中有一個是 1,便會放置 1。 | |
>> | bitwise right shift | expression 和 shiftCount 轉換成 32 位元的整數,然後將 expression 中的所有位元向右移動,移動的位置數目是由 shiftCount 轉換所產生的整數來指定。 | |
>>> | bitwise unsigned right shift | >> ) 運算子相同,只不過它並不會保留原來運算式的正負號,這是因為左邊的位元永遠會填入 0。 | |
^ | bitwise XOR | expression1 與 expression2 轉換成 32 位元無正負號的整數,在每一個位元位置上,如果 expression 1 或 expression2 的對應位元中有一個是 1 (但不能兩個同時是 1),便會放置 1。 | |
位元複合指定 | |||
&= | bitwise AND assignment | expression1 & 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 assignment | expression1 ^ 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 | ||
new | |||
{} | object initializer | name 和 value 屬性配對初始化物件。 | |
() | parentheses | ||
/ | RegExp delimiter | ||
: | type | ||
typeof | expression 並傳回指定運算式資料類型的字串。 | ||
void | undefined 。 | ||
字串 | |||
+ | concatenation | ||
+= | concatenation assignment | expression1 + expression2 的值指定給 expression1 。 | |
" | string delimiter | ||
指定 | |||
= | assignment | expression2 (右邊的運算元) 的值指定給 expression1 中的變數、陣列元素或屬性。 | |
數學 | |||
+ | addition | ||
-- | decrement | ||
/ | division | expression1 除以 expression2 。 | |
++ | increment | ||
% | modulo | expression1 除以 expression2 的餘數。 | |
* | multiplication | ||
- | subtraction | ||
數學複合指定 | |||
+= | addition assignment | expression1 + expression2 的值指定給 expression1 。 | |
/= | division assignment | expression1 + expression2 的值指定給 expression1 。 | |
%= | modulo assignment | expression1 % expression2 的值指定給 expression1 。 | |
*= | multiplication assignment | expression1 * expression2 的值指定給 expression1 。 | |
-= | subtraction assignment | expression1 - expression2 的值指定給 expression1 。 | |
比較 | |||
== | 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 | === ) 運算子的相反值。 | |
註解 | |||
/*..*/ | block comment delimiter | ||
// | line comment delimiter |
+ addition | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將數值運算式相加。如果兩個運算式都是整數,則總和也是整數;如果其中一個或兩個運算式都是浮點數,則總和也是浮點數。
如果其中一個運算式是字串,便會將其它所有運算式都轉換成字串,然後連接起來,而不會將它們加總。否則,如果運算式不是數字,Flash® Player 就會將它轉換成數字。
運算元expression1:Number —
要相加的值。
| |
expression2:Number —
要相加的值。
|
Number —
整數或浮點數。
|
範例
如何使用本範例
這個陳述式會將整數 2 與 3 相加:
trace(2 + 3); // 5
trace(2.5 + 3.25); // 5.75
trace("Number " + 8 + 0); // Number 80
deposit
就是舞台上的輸入文字欄位。當使用者輸入 deposit 的數量之後,Script 會嘗試將 deposit
增加到 oldBalance
中。但是,由於 deposit
的類型是 String,因此 Script 會連接變數的值 (組合成一個字串),而不是將它們加總。
var oldBalance:Number = 1345.23; var currentBalance = deposit_txt.text + oldBalance; trace(currentBalance);
trace()
陳述式便會將 4751345.23 這個值傳送到「輸出」面板中。若要修正這個問題,請使用 Number()
函數將字串轉換成數字,如下所示:
var oldBalance:Number = 1345.23; var currentBalance:Number = Number(deposit_txt.text) + oldBalance; trace(currentBalance);
相關 API 元素
+= addition assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
[] array access | 運算子 |
|
執行階段版本: | Flash Player 9 |
以指定的元素 ( a0
等) 初始化新的陣列或多維度陣列,或是存取陣列中的元素。此陣列存取運算子可讓您以動態方式設定及擷取實體、變數和物件名稱,也可讓您存取物件屬性。
用法 1:陣列是指其屬性稱為元素的物件,每個元素分別以一個稱為索引的編號來辨識。當您建立陣列時,會使用陣列存取 ([ ]) 運算子 (或方括號) 括住這些元素。陣列可包含各種類型的元素,例如,下面這個陣列稱為 employee
,它有三個元素,第一個元素是數字,另外兩個元素是字串 (放在雙引號內):
var employee:Array = [15, "Barbara", "Jay"];
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.*/
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
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 */
相關 API 元素
as | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
= assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
merkur
(mercury 的德文同義字) 並指定 mercury
的值給它。這樣會建立兩個參考記憶體中相同物件的變數,也就是說,您可以使用任何一個變數來存取物件的屬性。接著您就可以變更 diameter
屬性,使用公里而不是哩:
var merkur:Object = mercury; merkur.diameter = 4878; // in kilometers trace(mercury.diameter); // 4878
相關 API 元素
@ attribute identifier | 運算子 |
myXML.@attributeName |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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 }
xml.@class
(因為 class
是 ActionScript 的保留字)。您需要使用語法 xml.attribute("class")
:
var xml:XML = <example class='123'/> trace(xml.attribute("class"));
相關 API 元素
& bitwise AND | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1
與 expression2
轉換成 32 位元無正負號的整數,然後對整數參數的每一個位元執行 Boolean AND 運算。浮點數會經由捨棄小數點後的任何數字而轉換成整數。結果會產生一個新的 32 位元整數。
正整數會轉換成無正負號的十六進位值,其最大值是 4294967295 或 0xFFFFFFFF;大於最大值的值在轉換時會捨棄最高有效數字,以維持 32 位元的值。負數會經由此兩者的補數標記法轉換成無正負號的十六進位值,其最小值是 -2147483648 或 0x800000000;小於最小值的數字會在捨棄最高有效數字前以更高的精確度轉換成兩者的補數。
結果會解譯成 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)
1101 & 1011 ---- 1001
下列範例說明傳回值轉換的行為:
trace(0xFFFFFFFF); // 4294967295 trace(0xFFFFFFFF & 0xFFFFFFFF); // -1 trace(0xFFFFFFFF & -1); // -1 trace(4294967295 & -1); // -1 trace(4294967295 & 4294967295); // -1
相關 API 元素
&= bitwise AND assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1
& expression2
的值指定給 expression1
。例如,下列這兩個運算式是相等的:
x &= y; x = x & y;運算元
expression1:Number —
一個數字,或評估為數字的運算式。
| |
expression2:Number —
一個數字,或評估為數字的運算式。
|
int —
expression1 & expression2 的值。
|
範例
如何使用本範例
下列範例會將 9 這個值指定給
x
:
var x:Number = 15; var y:Number = 9; trace(x &= y); // 9
相關 API 元素
<< bitwise left shift | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1
和 shiftCount
轉換成 32 位元的整數,然後將 expression1
中的所有位元向左移動,移動的位置數目是由 shiftCount
轉換所產生的整數來指定。這項運算結果所空出來的位元位置會填入 0,並會捨棄移至左端外面的位元。將數值向左移動一個位置,就等於是將它乘以 2。
浮點數會經由捨棄小數點後的任何數字而轉換成整數。正整數會轉換成無正負號的十六進位值,其最大值是 4294967295 或 0xFFFFFFFF;大於最大值的值在轉換時會捨棄最高有效數字,以維持 32 位元的值。負數會經由此兩者的補數標記法轉換成無正負號的十六進位值,其最小值是 -2147483648 或 0x800000000;小於最小值的數字會在捨棄最高有效數字前以更高的精確度轉換成兩者的補數。
結果會解譯成 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
00000000001 binary << 10 decimal -------------- 10000000000 binary equals 1024 decimal
在下列範例中,整數 7 會向左移動 8 個位元:
x = 7 << 8
00000000111 binary << 8 decimal -------------- 11100000000 binary equals 1792 decimal
下列 trace
陳述式顯示位元已向左移動 3 個位置:
// 1 binary == 0001 // 8 binary == 1000 trace(1 << 3); // 8
相關 API 元素
<<= bitwise left shift and assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
~ bitwise NOT | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression
轉換成具有正負號的 32 位元整數,然後套用位元 1 的補數。也就是說,在結果中,每一個 0 的位元會設為 1,而每一個 1 的位元會設為 0,結果會產生一個具有正負號的 32 位元整數。此運算子也稱為 1 的補數運算子,或位元補數運算子。
例如,十六進位值 0x7777 會以這個二進位數字來表示:
0111011101110111
此十六進位值的位元負值 ~0x7777 則會以這個二進位數字來表示:
1000100010001000
以十六進位來表示,就是 0x8888。因此,~0x7777 就是 0x8888。
位元運算子最常用來表示旗標位元 (各包成 1 個位元的 Boolean 值)。
浮點數會經由捨棄小數點後的任何數字而轉換成整數。正整數會轉換成無正負號的十六進位值,其最大值是 4294967295 或 0xFFFFFFFF;大於最大值的值在轉換時會捨棄最高有效數字,以維持 32 位元的值。負數會經由此兩者的補數標記法轉換成無正負號的十六進位值,其最小值是 -2147483648 或 0x800000000;小於最小值的數字會在捨棄最高有效數字前以更高的精確度轉換成兩者的補數。
結果會解譯成 32 位元此兩者的補數,因此結果會是介於 -2147483648 到 2147483647 範圍之間的整數。
運算元expression:Number —
要轉換的數字。
|
int —
位元運算的結果。
|
範例
如何使用本範例
下列範例會示範如何將位元 NOT (
~
) 運算子與旗標位元搭配使用:
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
相關 API 元素
| bitwise OR | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1
與 expression2
轉換成 32 位元無正負號的整數,在每一個位元位置上,如果 expression 1
或 expression2
的對應位元中有一個是 1,便會放置 1。
浮點數會經由捨棄小數點後的任何數字而轉換成整數。正整數會轉換成無正負號的十六進位值,其最大值是 4294967295 或 0xFFFFFFFF;大於最大值的值在轉換時會捨棄最高有效數字,以維持 32 位元的值。負數會經由此兩者的補數標記法轉換成無正負號的十六進位值,其最小值是 -2147483648 或 0x800000000;小於最小值的數字會在捨棄最高有效數字前以更高的精確度轉換成兩者的補數。
結果會解譯成 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) 混淆。
相關 API 元素
|= bitwise OR assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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)
相關 API 元素
>> bitwise right shift | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression
和 shiftCount
轉換成 32 位元的整數,然後將 expression
中的所有位元向右移動,移動的位置數目是由 shiftCount
轉換所產生的整數來指定。而移到右端外面的位元會被捨棄掉。若要保留原來運算式的正負號,如果 expression
的最高有效位元 (最左邊的位元) 是 0,則會將左邊的位元填入 0;如果最高有效位元是 1,則會填入 1。將值向右移動一個位置就等於是將它除以 2 並捨去餘數。
浮點數會經由捨棄小數點後的任何數字而轉換成整數。正整數會轉換成無正負號的十六進位值,其最大值是 4294967295 或 0xFFFFFFFF;大於最大值的值在轉換時會捨棄最高有效數字,以維持 32 位元的值。負數會經由此兩者的補數標記法轉換成無正負號的十六進位值,其最小值是 -2147483648 或 0x800000000;小於最小值的數字會在捨棄最高有效數字前以更高的精確度轉換成兩者的補數。
結果會解譯成 32 位元此兩者的補數,因此結果會是介於 -2147483648 到 2147483647 範圍之間的整數。
運算元expression:Number —
要右移的數字或運算式。
| |
shiftCount:Number —
一個數字,或轉換成介於 0 到 31 之間整數的運算式。
|
int —
位元運算的結果。
|
範例
如何使用本範例
下列範例會將 65535 轉換成 32 位元的整數,然後將它向右移動 8 個位元,得到十進位值 255:
var a:Number = 65535 >> 8; trace(a); // 255
00000000000000001111111111111111 binary (65535 decimal) >> 8 decimal -------------------- 00000000000000000000000011111111 binary (255 decimal)下列範例會將 -8 轉換成 32 位元的整數,然後將它向右移動 1 個位元,得到十進位值 -4:
var a:Number = -8 >> 1; trace(a); // -4
11111111111111111111111111111000 binary (-8 decimal) >> 1 decimal -------------------- 11111111111111111111111111111100 binary (-4 decimal)
相關 API 元素
>>= bitwise right shift and assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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.
相關 API 元素
>>> bitwise unsigned right shift | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
與位元右移 (>>
) 運算子相同,只不過它並不會保留原來運算式的正負號,這是因為左邊的位元永遠會填入 0。
浮點數會經由捨棄小數點後的任何數字而轉換成整數。正整數會轉換成無正負號的十六進位值,其最大值是 4294967295 或 0xFFFFFFFF;大於最大值的值在轉換時會捨棄最高有效數字,以維持 32 位元的值。負數會經由此兩者的補數標記法轉換成無正負號的十六進位值,其最小值是 -2147483648 或 0x800000000;小於最小值的數字會在捨棄最高有效數字前以更高的精確度轉換成兩者的補數。
結果會解譯成 32 位元無正負號的整數,因此結果會是介於 0 到 4294967295 範圍之間的整數。
注意: ActionScript 沒有互補的「無正負號的位元左移」運算子,但您還是可以使用 uint(expression << shiftCount)
來達到相同的效果。
expression:Number —
要右移的數字或運算式。
| |
shiftCount:Number —
一個數字,或轉換成介於 0 和 31 之間整數的運算式。
|
uint —
位元運算的結果。
|
範例
如何使用本範例
下列範例會將 -1 轉換成 32 位元的整數,然後將它向右移動 1 個位元:
var a:Number = -1 >>> 1; trace(a); // 2147483647
相關 API 元素
>>>= bitwise unsigned right shift and assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
執行無正負號的位元右移運算,並將結果儲存在 expression
中。下列這兩個陳述式是相等的:
A >>>= B; A = (A >>> B);運算元
expression:Number —
要右移的數字或運算式。
| |
shiftCount:Number —
一個數字,或轉換成介於 0 到 31 之間整數的運算式。
|
uint —
位元運算的結果。
|
範例
如何使用本範例
下列範例會將 -1 轉換成 32 位元的整數,然後將它向右移動 1 個位元:
var a:Number = -1; a >>>= 1; trace(a); // 2147483647
相關 API 元素
^ bitwise XOR | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1
與 expression2
轉換成 32 位元無正負號的整數,在每一個位元位置上,如果 expression 1
或 expression2
的對應位元中有一個是 1 (但不能兩個同時是 1),便會放置 1。
浮點數會經由捨棄小數點後的任何數字而轉換成整數。正整數會轉換成無正負號的十六進位值,其最大值是 4294967295 或 0xFFFFFFFF;大於最大值的值在轉換時會捨棄最高有效數字,以維持 32 位元的值。負數會經由此兩者的補數標記法轉換成無正負號的十六進位值,其最小值是 -2147483648 或 0x800000000;小於最小值的數字會在捨棄最高有效數字前以更高的精確度轉換成兩者的補數。
結果會解譯成 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)
相關 API 元素
^= bitwise XOR assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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)
相關 API 元素
/*..*/ block comment delimiter | 運算子 |
/* comment */ /* comment comment */ |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
分割一行或多行 Script 註解。介於開始分隔符號 (/*
) 與結束分隔符號 (*/
) 之間的字元都會被解譯為註解,ActionScript 編譯器會將其略過。使用這些分隔符號即可識別連續多行的註解;對於單行註解,請使用 //
分隔符號。
如果您忽略結束區塊註解分隔符號 ( */
),或者嘗試使用巢狀註解,就會收到錯誤訊息。使用開始分隔符號 (/*
) 之後,第一個結束分隔符號 (*/
) 會結束註解,不論在它之前放置了多少個開始分隔符號。
comment:* —
任何字元。
|
範例
如何使用本範例
下列 Script 會在 Script 的開頭使用區塊註解分隔符號:
/* 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 */
相關 API 元素
{ } braces (XML) | 運算子 |
myXML = <{tagName} {attributeName} = {attributeValue}>{content}{tagName}> |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
評估 XML 或 XMLList 初始設定式中使用的運算式。XML 或 XMLList 初始設定式是指定給 XML 或 XMLList 類型變數的常值。以 XML {
和 }
運算子分隔的運算式,可以代替常值名稱或值用在 XML 或 XMLList 初始設定式中。運算式可以用來代替 tagName
、attributeName
、attributeValue
和 content
。
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>
相關 API 元素
[ ] brackets (XML) | 運算子 |
myXML[expression] |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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"]);
相關 API 元素
, comma | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
+ concatenation | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
+ concatenation (XMLList) | 運算子 |
expression1 + expression2 |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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>
相關 API 元素
+= concatenation assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1 + expression2
的值指定給 expression1
。例如,下列兩個陳述式會得到相同的結果:
x += y; x = x + y;連接 (
+
) 運算子的所有規則都可套用至連接指定 (+=
) 運算子。請注意,在 TextField
的 text
屬性 (如 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
相關 API 元素
+= concatenation assignment (XMLList) | 運算子 |
expression1 += expression2 |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1 + expression2
的值指定給 expression1
(其為 XMLList 物件)。例如,下列兩個陳述式會得到相同的結果:
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>
相關 API 元素
?: conditional | 運算子 |
expression1 ? expression2 : expression3 |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
評估 expression1
,如果 expression1
的值為 true
,則結果為 expression2
的值;否則結果為 expression3
的值。
expression1:Boolean —
評估結果為 Boolean 值的運算式,通常是比較運算式,例如 x < 5 。
| |
expression2:* —
任何類型的值。
| |
expression3:* —
任何類型的值。
|
* —
expression2 或 expression3 的值。
|
範例
如何使用本範例
下列陳述式會指定變數
x
的值給變數 z
,因為第一個運算式評估為 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);
-- decrement | 運算子 |
--expression expression-- |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
i
減去 1:
for (var i = 10; i > 0; i--) { trace(i); }
delete | 運算子 |
delete reference |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
傳回的 Boolean 值當做條件,以供將來執行程式碼時使用。請注意,如果某個項目已遭到刪除,則針對該項目再次呼叫 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
相關 API 元素
delete (XML) | 運算子 |
delete reference |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
刪除由 reference
指定的 XML 元素或特質。
reference:XMLList —
指定要刪除 XML 元素或特質的 XMLList 物件。
|
Boolean —
永遠傳回 true 的值。結果永遠為 true ,因為 XMLList 運算元指的永遠是有效的 (雖然可能是空白的) XMLList 物件。
|
範例
如何使用本範例
下列範例說明如何刪除特質,接著刪除單一元素,然後刪除多個元素:
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 |
執行階段版本: | 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()
方法,而不要使用後代 (..) 運算子,如下列範例所示:
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 屬性的名稱或特質名稱。
|
範例
如何使用本範例
下列範例說明如何使用後代存取子 (..) 運算子以傳回 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
相關 API 元素
/ division | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
expression1
除以 expression2
。除法運算的結果是雙精度浮點數。
expression:Number —
一個數字,或評估為數字的變數。
|
Number —
運算的浮點結果。
|
範例
如何使用本範例
下列範例說明被除數為正數、負數或 0 時,除以 0 的不同結果。
trace(3/0); // Infinity trace(-3/0); // -Infinity trace(0/0); // NaN
相關 API 元素
/= division assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
. dot | 運算子 |
object.property_or_method |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
. dot (XML) | 運算子 |
myXML.childElement myXML.@attributeName |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
== equality | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
測試兩個運算式是否相等。如果兩個運算式相等,則結果為 true
。
如果兩個運算元的資料類型相符,相等的定義取決於運算元的資料類型:
- 如果 int、uint 和 Boolean 類型具有相同的值,將它們的值視為相等。
- 具有相符值的數字將視為相等,除非它們都是
NaN
。 - 如果兩個運算元的值都是
null
或undefined
,即視為相等。 - 如果字串運算式中包含相同數目的字元,而且字元也完全相同,即視為相等。
- 對於 XML 物件:
- 如果其中一個運算元是文字或特質節點,另一個運算元擁有簡單的內容,則兩個運算元都會以
toString()
方法轉換成字串,再者,若結果字串相符,即視為相等。 - 否則,物件只有在兩個物件的完整名稱、特質和子屬性都相符時,才會視為相等。
- 如果其中一個運算元是文字或特質節點,另一個運算元擁有簡單的內容,則兩個運算元都會以
- 如果 XMLList 物件擁有相同數量的屬性,且屬性的順序和值都相符,即視為相等。
- 以 Namespace 物件而言,如果兩個物件的
uri
屬性相符,則將它們的值視為相等。 - 以 QName 物件而言,如果兩個物件的
uri
和localName
屬性相符,則將它們的值視為相等。 - 代表物件、陣列和函數的變數是依據參考來做比較。如果兩個這樣的變數參考相同的物件、陣列或函數,即視為相等。兩個不同的陣列,就算是具有相同數目的元素,也永遠不會視為相等。
false
,但下列情況除外:
- 運算元的值為
undefined
和null
,在此情況下,結果為true
。 - 自動資料類型轉換會將 String、Boolean、int、uint 和 Number 值的資料類型轉換成相容的類型,並且轉換的值為相等,在此情況下,會將運算元視為相等。
- 其中一個運算元屬於含有簡單內容 (
hasSimpleContent() == true
) 的 XML 類型,在兩個運算元都使用toString()
方法轉換成字串之後,結果字串便會相符。 - 其中一個運算元屬於 XMLList 類型,並且下列其中一種情況成立:
- XMLList 物件的
length
屬性為 0,另一個物件為undefined
。 - XMLList 物件的
length
屬性為 1,並且 XMLList 物件的一個元素符合另一個運算元。
- XMLList 物件的
expression1:Object —
數字、字串、Boolean 值、變數、物件、陣列或運算式。
| |
expression2:Object —
數字、字串、Boolean 值、變數、物件、陣列或運算式。
|
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
。雖然陣列看起來是相同的,但是依參考的比較需要 firstArray
和 secondArray
同時參考相同的陣列。第二個範例會建立 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
相關 API 元素
> greater than | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
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 | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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"); }
相關 API 元素
in | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
運算子來顯示數字 0、1 和 2 是 myArray
物件中有效的索引編號,而數字 3 則不是。
public var myArray:Array = ["zero", "one", "two"]; trace(0 in myArray); // true trace(1 in myArray); // true trace(2 in myArray); // true trace(3 in myArray); // false
相關 API 元素
++ increment | 運算子 |
++expression expression++ |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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 | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
測試相等 ( ==
) 運算子的相反值。如果 expression1
等於 expression2
,則結果為 false
。和相等 ( ==
) 運算子一樣,相等的定義取決於要比較的資料類型。
如果兩個運算元的資料類型相符,相等的定義取決於運算元的資料類型:
- 如果 int、uint 和 Boolean 類型具有相同的值,將它們的值視為相等。
- 具有相符值的數字將視為相等,除非它們都是
NaN
。 - 如果兩個運算元的值都是
null
或undefined
,即視為相等。 - 如果字串運算式中包含相同數目的字元,而且字元也完全相同,即視為相等。
- 對於 XML 物件:
- 如果其中一個運算元是文字或特質節點,另一個運算元擁有簡單的內容,則兩個運算元都會以
toString()
方法轉換成字串,再者,若結果字串相符,即視為相等。 - 否則,物件只有在兩個物件的完整名稱、特質和子屬性都相符時,才會視為相等。
- 如果其中一個運算元是文字或特質節點,另一個運算元擁有簡單的內容,則兩個運算元都會以
- 如果 XMLList 物件擁有相同數量的屬性,且屬性的順序和值都相符,即視為相等。
- 以 Namespace 物件而言,如果兩個物件的
uri
屬性相符,則將它們的值視為相等。 - 以 QName 物件而言,如果兩個物件的
uri
和localName
屬性相符,則將它們的值視為相等。 - 代表物件、陣列和函數的變數是依據參考來做比較。如果兩個這樣的變數參考相同的物件、陣列或函數,即視為相等。兩個不同的陣列,就算是具有相同數目的元素,也永遠不會視為相等。
!=
) 就會傳回 true
,但下列情況除外:
- 運算元的值為
undefined
和null
,在此情況下,結果為true
。 - 自動資料類型轉換會將 String、Boolean、int、uint 和 Number 值的資料類型轉換成相容的類型,並且轉換的值為相等,在此情況下,會將運算元視為相等。
- 其中一個運算元屬於含有簡單內容 (
hasSimpleContent() == true
) 的 XML 類型,則在兩個運算元都使用toString()
方法轉換成字串之後,結果字串便會相符。 - 其中一個運算元屬於 XMLList 類型,並且下列其中一種情況成立:
- XMLList 物件的
length
屬性為 0,另一個物件為undefined
。 - XMLList 物件的
length
屬性為 1,並且 XMLList 物件的一個元素符合另一個運算元。
- XMLList 物件的
expression1:Object —
數字、字串、Boolean 值、變數、物件、陣列或函數。
| |
expression2:Object —
數字、字串、Boolean 值、變數、物件、陣列或函數。
|
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
相關 API 元素
instanceof | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
評估運算式的原型鏈是否包括 function
的原型物件。隨附 instanceof
運算子的用意在於保持與 ECMAScript Edition 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
instanceof
運算子無法用於介面。由於會實作 IBitmapDrawable 介面的 DisplayObject 類別是 Sprite 類別的父類別,因此 is
運算子會傳回 true
。
var mySprite:Sprite = new Sprite(); trace(mySprite instanceof IBitmapDrawable); // false trace(mySprite is IBitmapDrawable); // true
相關 API 元素
is | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
評估物件是否與特定資料類型、類別或介面相容。請使用 is
運算子 (而不要使用 instanceof
運算子) 來進行類型比較。您也可以使用 is
運算子來檢查物件是否實作介面。
Boolean —
如果 expression1 與 expression2 中指定的資料類型、類別或介面相容,則值為 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
相關 API 元素
< less than | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
比較兩個運算式並判斷 expression1
是否小於 expression2
;如果是的話,則結果為 true
。如果 expression1
大於或等於 expression2
,則結果為 false
。
如果兩個運算元的類型都是 String,便會依照字母順序比較運算元;所有的大寫字母優先於小寫字母。否則,會先將運算元轉換成數字,再進行比較。
運算元expression1:Object —
字串、整數或浮點數。
| |
expression2:Object —
字串、整數或浮點數。
|
Boolean —
如果 expression1 小於 expression2 ,則值為 true ;否則為 false 。
|
範例
如何使用本範例
下列範例會同時說明數值比較和字串比較所傳回的
true
和 false
結果:
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 | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
比較兩個運算式並判斷 expression1
是否小於或等於 expression2
;如果是的話,則結果為 true
。如果 expression1
大於 expression2
,則結果為 false
。
如果兩個運算元的類型都是 String,便會依照字母順序比較運算元;所有的大寫字母優先於小寫字母。否則,會先將運算元轉換成數字,再進行比較。
運算元expression1:Object —
字串、整數或浮點數。
| |
expression2:Object —
字串、整數或浮點數。
|
Boolean —
如果 expression1 小於或等於 expression2 ,則值為 true ;否則為 false 。
|
範例
如何使用本範例
下列範例會同時說明數值比較和字串比較所傳回的
true
和 false
結果:
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 | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
指出 Script 註解的開頭。介於註解分隔符號 ( //)
與行尾字元之間的字元都會被解譯為註解,並且會被略過。請在單行註解上使用這個分隔符號;對於連續多行註解,請使用 /*
和 */
分隔符號。
comment:* —
任何字元。
|
範例
如何使用本範例
下列範例顯示單行註解:
// Any text following a line comment delimiter is ignored during compilation
相關 API 元素
&& logical AND | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
如果為 false
,或可以轉換成 false
,則傳回 expression1
;否則傳回 expression2
。可轉換成 false
值的範例有 0、NaN
、null
和 undefined
。如果您將函數呼叫當作 expression2
,那麼若 expression1
評估為 false
,則無法呼叫函數。
如果兩個運算元都是 Boolean 類型,那麼只有在兩個運算元都為 true
時,結果才會是 true
,如下表所示:
運算式 | 評估 |
---|---|
|
|
|
|
|
|
|
|
expression1:* —
任何類型的值或運算式。
| |
expression2:* —
任何類型的值或運算式。
|
* —
如果兩個運算元都是 Boolean 類型,則為 Boolean 值。否則,結果即為任一運算式的值。
|
範例
如何使用本範例
下列範例會使用邏輯 AND (
&&
) 運算子來執行測試,以判斷玩家是否贏得遊戲。在遊戲期間,當輪到某個玩家或是某個玩家得分時,便會更新變數 turns
和變數 score
。當玩家在三個回合之內的得分達到 75 分以上時,Script 便會輸出 "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!"); }
相關 API 元素
&&= logical AND assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1 && expression2
的值指定給 expression1
。例如,下列兩個陳述式是對等的:
x &&= y; x = x && y;運算元
expression1:* —
任何類型的值。
| |
expression2:* —
任何類型的值。
|
* —
如果兩個運算元都是 Boolean 資料類型的成員,則為 Boolean 值。否則,結果即為任一運算式的值。
|
範例
如何使用本範例
以下範例會將
myVar
變數變更成一個 XML 標籤,除非 myVar
是 null。只要變數評估結果不等於 false
,以下範例就會修改 myVar
變數。這項技巧的原理如下:如果 expression1
評估為 false
,邏輯 AND (&&
) 運算子會傳回 expression1
的值,否則會傳回 expression2
。如果 myVar
已包含評估為 true
的值,則會將 myVar
修改為類似 XML 的標籤。但是,如果 myVar
包含評估為 false
的值,例如值 null
、""
(空字串),以及 undefined
,則 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 指定 (&&=
) 運算子的優點則是不需要指定特定資料類型的精確預設值。
相關 API 元素
! logical NOT | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將變數或運算式的 Boolean 值變成相反值。如果 expression
是具有絕對或轉換值 true
的變數,則 !expression
的值為 false
。如果運算式 x && y
評估為 false
,則運算式 !(x && y)
會評估為 true
。
下列運算式會說明使用邏輯 NOT (!) 運算子的結果:
!true
傳回false
。!false
傳回true
。
expression:Boolean —
結果值為 Boolean 值的運算式或變數。
|
Boolean —
邏輯運算的 Boolean 結果。
|
範例
如何使用本範例
在下列範例中,變數
happy
會設定為 false
。if
條件會評估條件 !happy
,如果條件為 true
,trace()
陳述式就會輸出字串。
var happy:Boolean = false; if (!happy) { trace("don't worry, be happy"); // don't worry, be happy }
trace
陳述式,因為 !false
等於 true
。
相關 API 元素
|| logical OR | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
如果為 true
,或可以轉換成 true
,則傳回 expression1
;否則傳回 expression2
。如果您將函數呼叫當作 expression2
,那麼若 expression1
評估為 true
,則無法呼叫函數。
如果兩個運算元都是 Boolean 類型,那麼若其中一個或兩個運算式都是 true
,則結果為 true
;只有在兩個運算式都是 false
時,結果才會是 false
,如下表所示:
運算式 | 評估 |
---|---|
|
|
|
|
|
|
|
|
expression1:* —
任何類型的值。
| |
expression2:* —
任何類型的值。
|
* —
如果兩個運算元都是 Boolean 資料類型的成員,則為 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
)。
下列範例會說明為何使用函數呼叫做為第二個運算元可能導致不可預期的結果。如果運算子左邊的運算式評估為 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"); }
相關 API 元素
||= logical OR assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1 || expression2
的值指定給 expression1
。例如,下列兩個陳述式是對等的:
x ||= y; x = x || y;運算元
expression1:* —
任何類型的值。
| |
expression2:* —
任何類型的值。
|
* —
如果兩個運算元都是 Boolean 資料類型的成員,則為 Boolean 值。否則,結果即為任一運算式的值。
|
範例
如何使用本範例
下列範例會將預設值指定給先前宣告且名為
myVar
的變數。這項技巧的原理如下:如果 expression1
評估為 true
,邏輯 OR (||
) 運算子會傳回 expression1
的值,否則會傳回 expression2
的值。如果 myVar
已包含評估為 true
的值,則 myVar
不變。但是,如果 myVar
包含評估為 false
的值,例如值 null
、""
(空字串) 與 undefined
,則 myVar
會被指定 "default"
值。
myVar ||= "default";
相關 API 元素
% modulo | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
%
) 運算子只會傳回餘數。第二個追蹤會傳回 0.0999999999999996 而不是預期的 0.1,因為受到二進位運算中的浮點正確性的限制。
相關 API 元素
%= modulo assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
* multiplication | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將兩個數值運算式相乘。如果兩個運算式都是整數,則乘積也是整數。如果其中一個或兩個運算式是浮點數,則乘積也是浮點數。
運算元expression1:Number —
一個數字,或評估為數字的運算式。
| |
expression2:Number —
一個數字,或評估為數字的運算式。
|
Number —
整數或浮點數。
|
範例
如何使用本範例
下列陳述式會將整數 2 與 3 相乘,得到整數 6 的結果:
trace(2*3); // 6
trace(2.0 * 3.1416); // 6.2832
*= multiplication assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1 * expression2
的值指定給 expression1
。例如,下列這兩個運算式是相等的:
x *= y x = x * y運算元
expression1:Number —
一個數字,或評估為數字的運算式。
| |
expression2:Number —
一個數字,或評估為數字的運算式。
|
Number —
expression1 * expression2 的值。如果運算式無法轉換成數值,它會傳回 NaN (不是數字)。
|
範例
如何使用本範例
下列範例會將 50 這個值指定給變數
a
:
var a:Number = 5; var b:Number = 10; trace(a *= b); // 50
c
和 d
:
var i:Number = 5; var c:Number = 4 - 6; var d:Number = i + 2; trace(c *= d); // -14
相關 API 元素
:: name qualifier | 運算子 |
namespace::property namespace::method() namespace::xmlObject.property namespace::xmlObject.@attribute |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
new | 運算子 |
|
執行階段版本: | 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);
相關 API 元素
{} object initializer | 運算子 |
object = {name1 : value1, name2 : value2,... nameN : valueN} |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
建立新的物件,並且使用指定的 name
和 value
屬性配對初始化物件。使用這個運算子就等於是使用 new Object
語法,然後使用指定運算子填入屬性配對。新建立之物件的原型通常會命名為 Object 物件。
這個運算子也可以用來標記連續的程式碼區塊,這裡指的是和流程控制陳述式 (for
、while
、if
、else
、switch
) 與函數相關聯的程式碼區塊。
object:Object —
要建立的物件。
| |
name1,2,...N:Object —
屬性的名稱。
| |
value1,2,...N:Object —
每個 name 屬性的對應值。
|
Object —
Object 物件。
|
範例
如何使用本範例
在下列第一行程式碼中,會使用物件初始設定式 ({}) 運算子來建立一個空的物件;第二行會使用建構函數來建立一個新的物件:
var object:Object = {}; var object:Object = new Object();
account
,並分別以對應的值初始化 name
、address
、city
、state
、zip
和 balance
屬性:
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";
相關 API 元素
() parentheses | 運算子 |
(expression1[, expression2]) (expression1, expression2) function(parameter1,..., parameterN) |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
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
var today:Date = new Date(); trace(today.getFullYear()); // outputs current year function traceParameter(param):void { trace(param); } traceParameter(2 * 2); // 4
相關 API 元素
( ) parentheses (XML) | 運算子 |
myXML.(expression) |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
/ RegExp delimiter | 運算子 |
/pattern/flags |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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
相關 API 元素
=== strict equality | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
測試兩個運算式是否相等,但不要執行自動資料轉換。如果兩個運算式相等 (包括資料類型在內),則結果為 true
。
嚴謹相等 (===
) 運算子和相等 (==
) 運算子有三個相同之處:
- 數字和 Boolean 值是根據值來比較;如果具有相同的值,即視為相等。
- 如果字串運算式中包含相同數目的字元,而且字元也完全相同,即視為相等。
- 代表物件、陣列和函數的變數是依據參考來做比較。如果兩個這樣的變數參考相同的物件、陣列或函數,即視為相等。兩個不同的陣列,就算是具有相同數目的元素,也永遠不會視為相等。
===
) 運算子和相等 (==
) 運算子只有兩方面不同:
- 嚴謹相等運算子只會為數值類型 Number、int 和 uint 執行自動資料轉換,而相等運算子則會為所有基本資料類型執行自動資料轉換。
- 比較
null
和undefined
時,嚴謹相等運算子會傳回false
。
var x:Number = new Number(1)
) 的基本值 (例如 var x: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 中,產生的結果為 true
,因為不論基本值是否包裝在物件中,其類型一定是 Boolean、Number、int、uint 或 String。
var num1:Number = 1; var num2:Number = new Number(1); trace(num1 === num2); // true in ActionScript 3.0, false in ActionScript 2.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
false
。然而,在 ActionScript 3.0 中,這兩個變數都屬於 Number 資料類型,所以它們會依值來比較,並且相等和嚴謹相等運算子的結果都是 true
。
運算元expression1:Object —
數字、字串、Boolean 值、變數、物件、陣列或函數。
| |
expression2:Object —
數字、字串、Boolean 值、變數、物件、陣列或函數。
|
Boolean —
比較的 Boolean 結果。
|
範例
如何使用本範例
下列範例說明當值與資料類型都相符時,嚴謹相等 (
===
) 運算子就等於相等 (==
) 運算子:
var string1:String = "5"; var string2:String = "5"; trace(string1 == string2); // true trace(string1 === string2); // true
==
) 運算子則會:
// 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
var num1:Number = 1; var num2:int = 1; var num3:uint = 1; trace(num1 === num2); // true trace(num1 === num3); // true
null
和 undefined
視為不相等,但相等運算子會將它們視為相等:
trace(null == undefined); // true trace(null === undefined); // false
相關 API 元素
!== strict inequality | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
測試嚴謹相等 ( ===
) 運算子的相反值。嚴謹不相等運算子的執行方式與不相等運算子一樣,只是會轉換 int 和 uint 資料類型。
如果 expression1
等於 expression2
,而且兩者的資料類型相同,則結果為 false
。
嚴謹不相等 (!==
) 運算子和不相等 (!=
) 運算子有三個相同之處:
- 數字和 Boolean 值是根據值來比較;如果具有相同的值,即視為相等。
- 如果字串運算式中包含相同數目的字元,而且字元也完全相同,即視為相等。
- 代表物件、陣列和函數的變數是依據參考來做比較。如果兩個這樣的變數參考相同的物件、陣列或函數,即視為相等。兩個不同的陣列,就算是具有相同數目的元素,也永遠不會視為相等。
!=
) 運算子只有兩個不同:
- 嚴謹不相等 (
!==
) 運算子只會為數值類型 Number、int 和 uint 執行自動資料轉換,而不相等 (!=
) 運算子則會為所有基本資料類型執行自動資料轉換。 - 比較
null
和undefined
時,嚴謹不相等 (!==
) 運算子會傳回true
。
expression1:Object —
數字、字串、Boolean 值、變數、物件、陣列或函數。
| |
expression2:Object —
數字、字串、Boolean 值、變數、物件、陣列或函數。
|
Boolean —
比較的 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
相關 API 元素
" string delimiter | 運算子 |
"text" |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
用在字元的前方或後方時,表示這些字元具有常值,並且會將其視為字串,而不是變數、數值或其它 ActionScript 元素。
運算元text:String —
一連串的 0 或多個字元。
|
範例
如何使用本範例
下列範例使用引號 (") 來表示變數
yourGuess
值是常值字串 "Prince Edward Island"
,而不是變數的名稱。
var yourGuess:String = "Prince Edward Island"; submit_btn.onRelease = function() { trace(yourGuess); }; // Prince Edward Island
相關 API 元素
- subtraction | 運算子 |
|
執行階段版本: | Flash Player 9 |
當做負號或用於減法。
用法 1:當做負號時,運算子會使數值運算式由正的變成負的,或由負的變成正的。
用法 2:用於減法時,會對兩個數值運算式執行數學減法,從 expression1
中減掉 expression2
。如果兩個運算式都是整數,則差也是整數。如果其中一個或兩個運算式是浮點數,則所得的差也是浮點數。
expression1:Number —
一個數字,或評估為數字的運算式。
| |
expression2:Number —
一個數字,或評估為數字的運算式。
|
Number —
整數或浮點數。
|
範例
如何使用本範例
用法 1:下列陳述式會將運算式 2 + 3 的正負號顛倒:
trace(-(2 + 3)); // -5
trace(5 - 2); // 3
下列陳述式會從浮點數 3.25 中減掉浮點數 1.5:
trace(3.25 - 1.5); // 1.75
-= subtraction assignment | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
將 expression1 - expression2
的值指定給 expression1
。例如,下列兩個陳述式是對等的:
x -= y ; x = x - y;
字串運算式必須轉換成數字;否則結果為 NaN
(不是數字)。
expression1:Number —
一個數字,或評估為數字的運算式。
| |
expression2:Number —
一個數字,或評估為數字的運算式。
|
Number —
數學運算的結果。
|
範例
如何使用本範例
下列範例會使用減法指定 (
-=
) 運算子,將 10 減掉 5,然後將結果指定給變數 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
相關 API 元素
: type | 運算子 |
[modifiers] var variableName:type function functionName():type { ... } function functionName(parameter1:type, ..., parameterN:type) [:type]{ ... } |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
用於指定資料類型;這個運算子會指定變數類型、函數的傳回值類型或函數的參數類型。此運算子在用於宣告或指定變數時,會指定該變數的類型;此運算子在用於宣告或定義函數時,會指定該函數的傳回值類型;此運算子在用於函數定義中的函數參數時,會指定該參數所預期的變數類型。
在執行階段一定會執行類型檢查。然而,當編譯器設定為嚴謹模式時,編譯階段也會檢查所有類型,並且當發現不相符時,會產生錯誤。使用點 ( .
) 運算子來執行指定操作、函數呼叫和類別成員解除參照的時候,可能會發生不相符的項目。
可使用的類型包括所有的原生物件類型、您定義的類別和介面及 void
。可識別的原生類型為 Boolean、Number、int、uint 和 String。並且會以原生類型的形式來支援所有內建的類別。
如果您不指定資料類型、變數、函數的傳回值或函數參數,就會被視為不具類型,這表示值可以是任何資料類型。如果您想要清楚表達欲使用不具類型的值,則可以使用星號 (*) 字元做為類型附註。將星號字元當作類型附註使用的時候,就等於將變數、函數的傳回類型或函數參數保留為不具類型。
運算元variableName:* —
變數的識別名稱。
| |
type:* —
您已定義類別名稱的原生資料類型,或是介面名稱。
| |
functionName:Function —
函數的識別名稱。
| |
parameter:* —
函數參數的識別名稱。
|
範例
如何使用本範例
用法 1:下列範例會宣告名稱為
userName
的公用變數,其類型為 String 並指定內容為空字串:
var userName:String = "";
randomInt()
的函數來指定函數的傳回類型,且該函數會將它的傳回類型指定為 int:
function randomInt(integer:int):int { return Math.round(Math.random()*integer); } trace(randomInt(8));
squareRoot()
函數,該函數會接受 Number 類型的參數 val
,並傳回同屬 Number 類型的 val
平方根:
function squareRoot(val:Number):Number { return Math.sqrt(val); } trace(squareRoot(121));
相關 API 元素
typeof | 運算子 |
|
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 9 |
評估 expression
並傳回指定運算式資料類型的字串。結果僅限於 6 個可能的字串值:boolean
、function
、number
、object
、string
和 xml
。如果您將這個運算子套用到使用者定義的類別實體,則結果為字串 object
。隨附 typeof
運算子的用意在於,保有與舊版的相容性。請使用 is
運算子來檢查類型相容性。
expression:Object —
要評估的物件。
|
String —
expression 類型的字串表示法。下表顯示 typeof 運算子在每種運算式類型上的結果。
|
範例
如何使用本範例
下列範例說明在不同物件和值上使用
typeof
的結果。
trace(typeof Array); // object trace(typeof Date); // object trace(typeof 3); // number
new
運算子來建立物件,基本物件的資料類型都是相同的。這與舊版的 ActionScript 不同,舊版的 typeof
運算子會傳回變數 b
的 object
:
var a:String = "sample"; var b:String = new String("sample"); trace(typeof a); // string trace(typeof b); // string
相關 API 元素
void | 運算子 |
|
執行階段版本: | Flash Player 9 |
評估運算式並捨棄其值,然後傳回 undefined
。void
運算子通常用在比較上,比較會使用 ==
運算子來測試 undefined 值。
expression:Object —
要評估的運算式。
|
* —
值 undefined 。
|
< > XML literal tag delimiter | 運算子 |
myXML= <{tagName} {attributeName} = {attributeValue}>{content}{tagName}> |
語言版本: | ActionScript 3.0 |
執行階段版本: | 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>;
相關 API 元素
Tue Jun 12 2018, 04:05 PM Z