Flash CS3 文件 |
|||
| ActionScript 3.0 程式設計 > ActionScript 語言和語法 > 資料類型 > 資料類型說明 | |||
基本資料類型包括:Boolean、int、Null、Number、String、uint 和 void。ActionScript 核心類別也會定義下列複雜資料類型:Object、Array、Date、Error、Function、RegExp、XML 和 XMLList。
Boolean 資料類型包含兩個值:true 和 false。Boolean 類型的變數沒有其它有效值。已宣告但未初始化的 Boolean 變數預設值為 false。
int 資料類型在內部是儲存為 32 位元的整數,而包含自 -2,147,483,648 (-231) 至 2,147,483,647 (231 - 1) 的一組整數 (包含 -2,147,483,648 和 2,147,483,647)。舊版 ActionScript 僅提供 Number 資料類型,同時供整數與浮點數使用。而在 ActionScript 3.0 中,您可以存取低階電腦類型 32 位元具有正負號和無正負號的整數。如果變數不使用浮點數,不使用 Number 資料類型而改用 int 資料類型應該會更快,也更有效率。
對於在最小及最大 int 值範圍之外的整數值來說,使用 Number 資料類型可以處理介於正負 9,007,199,254,740,992 (53 位元整數值) 之間的值。int 資料類型變數的預設值為 0。
Null 資料類型僅包含 null 這個值。這是 String 資料類型及定義複雜資料類型之所有類別 (包括 Object 類別) 的預設值。其它任何基本資料類型,例如 Boolean、Number、int 和 uint,都不包含 null 這個值。若嘗試將 null 值指定給 Boolean、Number、int 或 uint 類型變數,Flash Player 會將 null 值轉換為適當的預設值。您無法使用此資料類型做為類型註釋。
在 ActionScript 3.0 中,Number 資料類型可以代表整數、無正負號的整數和浮點數值。但是若要取得最高效能,應該只在整數值大於 32 位元 int 和 uint 類型所能儲存的數值時,或數值為浮點數時,才使用 Number 資料類型。若要儲存浮點數值,必須在數值中包含小數點。如果省略小數點,數值將會儲存為整數。
Number 資料類型使用的是 IEEE 二進位浮點數運算標準 (IEEE-754) 所指定的 64 位元雙精度格式。這項標準規定使用 64 個可用位元儲存浮點數值的方式。其中,1 個位元是用來指定數值是正值或負值;11 個位元可供指數使用,儲存時以 2 為底;而其餘 52 個位元則是用來儲存「有效位數」(也稱為「尾數」),它是自乘至指數所指示的次方值。
Number 資料類型透過使用部分位元儲存指數,比使用其所有位元儲存有效位數可儲存的浮點數值大得多。例如,若 Number 資料類型將 64 個位元全部用來儲存有效位數,那麼可儲存的最大數目為 265 - 1;若使用 11 位元來儲存指數,則 Number 資料類型可將有效位數增加為 21023。
Number 資料類型可代表的最大及最小值是儲存在 Number 類別的靜態屬性 Number.MAX_VALUE 和 Number.MIN_VALUE 之中。
Number.MAX_VALUE == 1.79769313486231e+308 Number.MIN_VALUE == 4.940656458412467e-324
雖然這個數值的範圍非常之大,但是精確度相較之下則差了許多。Number 資料類型會使用 52 個位元儲存有效位數,其結果是需要 52 個位元以上才能精確地代表的數值 (如,分數 1/3) 只是近似值而己。如果應用程式需要絕對精確度的小數,就必須使用實作小數浮點運算的軟體,而不能使用二進位浮點數運算。
以 Number 資料類型儲存整數值時,僅會用到有效位數的 52 個位元。Number 資料類型會使用這 52 個位元及特殊的隱藏位元代表自 -9,007,199,254,740,992 (-253) 至 9,007,199,254,740,992 (253) 的整數值。
Flash Player 不僅會使用 NaN 值做為 Number 類型變數的預設值,也做為任何應傳回但未傳回數值之運算作業的結果。例如,若嘗試計算負數的平方根,則結果將會是 NaN。其它特殊 Number 值包括「正無限大」和「負無限大」。
|
注意 |
|
若除數也是 |
String 資料類型代表 16 位元字元的序列。字串會使用 UTF-16 格式,在內部儲存為 Unicode 字元。字串是永遠不變的值,與在 Java 程式語言中的性質相同。String 值的操作會傳回字串的新實體。使用 String 資料類型宣告的變數預設值為 null。null 值與空字串 ("") 的值並不相同,不過兩者都代表沒有任何字元。
uint 資料類型在內部是儲存為 32 位元無正負號整數,而包含自 0 至 4,294,967,295 (232-1) 的一組整數 (包含 0 和 4,294,967,295)。在呼叫非負數整數的特殊狀況下,才會使用 uint 資料類型。例如,您必須使用 uint 資料類型代表像素顏色值,因為 int 資料類型所具有的內部正負號位元並不適合處理顏色值。對於比最大 uint 值還要大的整數值來說,使用 Number 資料類型可以處理 53 位元整數值。uint 資料類型變數的預設值為 0。
void 資料類型只包含 undefined 這個值。在舊版 ActionScript 中,undefined 是 Object 類別之實體的預設值;在 ActionScript 3.0 中,Object 實體的預設值為 null。如果嘗試指定 undefined 值給 Object 類別的實體,Flash Player 會將該值轉換成 null。您只能將 undefined 值指定給不具類型的變數。不具類型變數是沒有任何類型註釋,或使用星號 (*) 類型註釋的變數。您只能使用 void 做為傳回類型註釋。
Object 資料類型是由 Object 類別所定義。Object 類別可做為 ActionScript 中所有類別定義的基底類別。ActionScript 3.0 版的 Object 資料類型在三方面與舊版 ActionScript 不同:第一,Object 資料類型不再是指定給沒有類型註釋之變數的預設資料類型;第二,Object 資料類型不再包含 undefined 值,以前這是 Object 實體的預設值;第三,在 ActionScript 3.0 中,Object 類別之實體的預設值是 null。
在舊版 ActionScript 中,沒有類型註釋的變數是自動指定為 Object 資料類型;而在 ActionScript 3.0 中已非如此,現在包含真正不具類型變數的概念。沒有類型註釋的變數現在視為不具類型。若要讓程式碼的讀者清清楚楚地知道,您是刻意要讓變數保持為不具類型,則可以使用新類型註釋的星號 (*) 符號,這個符號等於省略類型註釋。下列範例會示範兩個相等的陳述式,兩個都會宣告不具類型的變數 x:
var xvar x:*
只有不具類型的變數可以存放 undefined 值。若嘗試將 undefined 值指定給具有資料類型的變數,Flash Player 會將 undefined 值轉換為該資料類型的預設值。對於 Object 資料類型的實體來說,預設值是 null,這表示若嘗試將 undefined 值指定給 Object 類別,Flash Player 會將 undefined 值轉換成 null。
Flash CS3
目前頁面: http://livedocs.adobe.com/flash/9.0_tw/main/00000047.html