套件 | 最上層 |
類別 | public dynamic class Vector |
繼承 | Vector Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
如同 Array,您可以使用陣列存取 ([]
) 運算子來設定或擷取 Vector 元素的值。許多 Vector 方法也提供用來設定及擷取元素值的機制。這些方法包括 push()
、pop()
、shift()
、unshift()
等等。Vector 物件的屬性和方法與 Array 的屬性和方法很類似 (在大部分情況下為完全相同)。在大部分的情況下,當您想要在資料類型相同的所有元素中使用 Array 時 ,最好是使用 Vector 實體。不過,Vector 實體是密集陣列,這意謂著它必須在每一個索引中有一個值 (或 null
)。Array 實體沒有這種限制。
使用後置類型參數語法來指定 Vector 的基底類型。類型參數語法是由下列組成的序列:點 (.
)、左方角括號 (<
)、類別名稱,後面接著右方角括號 (>
),如下列範例所示:
在範例的第一行中,變數 v
被宣告為 Vector.<String> 實體。換句話說,它代表只能保存 String 實體而且只能從中擷取 String 實體的 Vector (陣列)。第二行會建構相同 Vector 類型的實體 (亦即,其元素都是 String 物件的 Vector),並且將它指定給 v
。
var v:Vector.<String>; v = new Vector.<String>();
使用 Vector.<T> 資料類型宣告的變數只能儲存以相同基底類型 T
建構的 Vector 實體。例如,藉由呼叫 new Vector.<String>()
建構的 Vector 不能指定給使用 Vector.<int> 資料類型宣告的變數。基底類型必須完全相符。例如,下列程式碼無法編譯,因為物件的基底類型與變數宣告的基底類型不同 (即使 Sprite 是 DisplayObject 的子類別):
// This code doesn't compile even though Sprite is a DisplayObject subclass var v:Vector.<DisplayObject> = new Vector.<Sprite>();
若要將具有基底類型 T
的 Vector 轉換為 T
之父類別的 Vector,請使用 Vector()
全域函數。
除了資料類型限制之外,Vector 類別的其他限制與 Array 類別還是有所區別的:
- Vector 是密集陣列。不同於只要在索引 0 和 7 有值 (即使在位置 1 至 6 沒有值) 的 Array,Vector 在每個索引都必須有值 (或
null
)。 - Vector 可以選擇性地成為固定長度,表示它所包含的元素數目不會變更。
- 對 Vector 元素的存取會進行邊界檢查。您永遠都不能讀取大於最後一個元素 (
length - 1
) 之索引的值。您永遠都不能設定超出目前最後一個索引之索引的值 (換句話說,只能設定位於現有索引或索引[length]
的值)。
由於這些限制,比起元素都是單一類別實體的 Array 實體,Vector 有三大優點:
- 效能:使用 Vector 實體的陣列元素來存取和循環,遠比使用 Array 時快得多。
- 類型安全:在嚴謹模式中,編譯器可以識別資料類型錯誤。資料類型錯誤範例包含指定具有不正確資料類型的值給 Vector,或者讀取來自 Vector 的值時,預期該值具有不正確的資料類型。但是請注意,當使用
push()
方法或unshift()
方法將各個值加到 Vector 時,並不會在編譯階段檢查引數的資料類型。 相反地,會在執行階段時檢查它們。 - 可靠性:與 Array 相比,執行階段範圍檢查 (或固定長度檢查) 會大幅增加可靠性。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
fixed : Boolean
指出是否可以變更 Vector 的 length 屬性。 | Vector | ||
length : uint
在 Vector 中可以使用的有效索引範圍。 | Vector |
方法 | 定義自 | ||
---|---|---|---|
建立具有指定基底類型的 Vector。 | Vector | ||
將參數清單中指定的 Vector 與這個 Vector 中的元素連接,並建立新的 Vector。 | Vector | ||
針對 Vector 中的每個項目執行測試函數,直到到達針對指定之函數傳回 false 的項目為止。 | Vector | ||
針對 Vector 中的每個項目執行測試函數,並傳回新的 Vector,其中包含針對指定之函數傳回 true 的所有項目。 | Vector | ||
針對 Vector 中的每個項目執行函數。 | Vector | ||
指出物件是否有已定義的指定屬性。 | Object | ||
在 Vector 中搜尋某個項目,並傳回該項目的索引位置。 | Vector | ||
將單一元素插入 Vector。 | Vector | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
將 Vector 中的元素轉換成字串、在元素之間插入指定的分隔符號、連接元素,然後傳回結果字串。 | Vector | ||
在 Vector 中搜尋某個項目 (從指定的索引位置向後搜尋),並傳回符合之項目的索引位置。 | Vector | ||
針對 Vector 中的每個項目執行函數,並傳回新的 Vector,其中的項目會分別對應於針對此 Vector 中每個項目呼叫函數的結果。 | Vector | ||
pop():T
移除 Vector 中的最後一個元素,並傳回該元素。 | Vector | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
在 Vector 結尾加入一個或多個元素,並傳回新的 Vector 長度。 | Vector | ||
從 Vector 中移除單一元素。 | Vector | ||
將 Vector 中的元素順序反轉。 | Vector | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
shift():T
移除 Vector 中的第一個元素,並傳回該元素。 | Vector | ||
傳回新的 Vector,此新 Vector 會包含原始 Vector 的元素範圍,但是不會修改原始 Vector。 | Vector | ||
針對 Vector 中的每個項目執行測試函數,直到到達傳回 true 的項目為止。 | Vector | ||
排序 Vector 物件中的元素,同時傳回已排序的 Vector 物件。 | Vector | ||
在 Vector 中增加和移除元素。 | Vector | ||
傳回字串,此字串代表指定之 Vector 中的元素。 | Vector | ||
傳回字串,此字串代表 Vector 中的元素。 | Vector | ||
在 Vector 開頭加入一個或多個元素,並傳回新的 Vector 長度。 | Vector | ||
會傳回指定之物件的基本值。 | Object |
fixed | 屬性 |
fixed:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指出是否可以變更 Vector 的 length
屬性。如果此值為 true
,則無法變更 length
屬性。這表示,當 fixed
為 true
時不允許下列作業:
- 直接設定
length
屬性 - 將值指定給索引位置
length
- 呼叫會變更
length
屬性的方法,包括:pop()
push()
shift()
unshift()
splice()
(如果splice()
呼叫會變更 Vector 的length
)
實作
public function get fixed():Boolean
public function set fixed(value:Boolean):void
length | 屬性 |
length:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
在 Vector 中可以使用的有效索引範圍。Vector 實體的索引位置多達 (不含) length
值。
每個 Vector 元素的值一定是基底類型的實體或 null
。當 length
屬性的值設定為大於其先前值時,則會建立額外的元素並且將適合基底類型的預設值填入這些元素 (如果是參考類型則為 null
)。
當 length
屬性的值設定為小於其先前值時,則會從 Vector 中移除位於索引位置大於或等於新 length
值的所有元素。
實作
public function get length():uint
public function set length(value:uint):void
擲回值
RangeError — 如果在 fixed 為 true 時變更這個屬性。
| |
RangeError — 如果這個屬性設定為大於允許的最大索引 (232) 的值。
|
Vector | () | 建構函式 |
public function Vector(length:uint = 0, fixed:Boolean = false)
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
建立具有指定基底類型的 Vector。
呼叫 Vector.<T>()
建構函式時,請使用類型參數語法來指定基底類型。類型參數語法是由下列組成的序列:點 (.
)、左方角括號 (<
)、類別名稱,後面接著右方角括號 (>
),如下列範例所示:
var v:Vector.<String> = new Vector.<String>();
若要從 Array 或另一個 Vector (如具有不同基底類型的 Vector) 建立 Vector 實體,請使用 Vector()
全域函數。
若要建立預先填入的 Vector 實體,請使用以下語法而不要使用以下指定的參數:
// var v:Vector.<T> = new <T>[E0, ..., En-1 ,]; // For example: var v:Vector.<int> = new <int>[0,1,2,];
以下資訊適用於此語法:
- Flash Professional CS5 和更新版本、Flash Builder 4 和更新版本以及 Flex 4 和更新版本支援此語法。
- 可省略最後加上的逗點。
- 不支援陣列中空白的項目;像
var v:Vector 陳述式。<int> = new <int>[0,,2,]
的陳述式會發生編譯器錯誤。 - 您無法指定 Vector 實體的預設長度。相反地,長度會與初始化清單中的元素數目相同。
- 您無法指定 Vector 實體是否為固定長度。但可使用
fixed
屬性。 - 如果以值的形式所傳遞之項目不符合指定的類型,則可能會發生資料遺失或錯誤。例如:
var v:Vector.<int> = new <int>[4.2]; // compiler error when running in strict mode trace(v[0]); //returns 4 when not running in strict mode
length:uint (default = 0 ) — Vector 的初始長度 (元素數目)。如果這個參數大於零,則會建立指定的 Vector 元素數目並且將適合基底類型的預設值填入這些元素 (如果是參考類型則為 null )。
| |
fixed:Boolean (default = false ) — Vector 的長度是固定 (true ) 還是可變更 (false )。也可以使用 fixed 屬性來設定此值。
|
相關 API 元素
concat | () | 方法 |
AS3 function concat(... args):Vector.<T>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
將參數清單中指定的 Vector 與這個 Vector 中的元素連接,並建立新的 Vector。參數清單中的 Vector 必須具有與這個 Vector 相同的基底類型或子類型。如果您沒有傳遞任何參數,傳回的 Vector 便會是原始 Vector 的重製副本 (陰影副本)。
參數
... args — 基底類型的零個或多個 Vector,或這個 Vector 的子類型。
|
Vector.<T> — 具有與這個 Vector 相同基底類型的 Vector,而且其中包含這個 Vector 的元素,後面接著參數清單中 Vector 的元素。
|
擲回值
TypeError — 如果任何引數不是基底類型的 Vector,或者無法轉換成基底類型的 Vector,就會傳回錯誤。
|
every | () | 方法 |
AS3 function every(callback:Function, thisObject:Object = null):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
針對 Vector 中的每個項目執行測試函數,直到到達針對指定之函數傳回 false
的項目為止。您可以使用此方法,判斷 Vector 中的所有項目是否符合準則,如具有小於特定數字的值。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。這是這個方法最常見的使用方式。
不過,假設您使用 Flash Professional,在主要時間軸的影格上建立函數,但要在不同的 this
內容中呼叫它:
function myFunction(item:T, index:int, vector:Vector.<T>):Boolean { // your code here }
假設您接著在名為 myVector
的 Vector 上使用 every()
方法:
myVector.every(myFunction, someObject);
由於 myFunction
是 SWF 檔案主要類別的成員,不能在不同的 this
內容中執行。Flash 執行階段會在執行此程式碼時擲回例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean { //your code here }; myVector.every(myFunction, someObject);
參數
callback:Function — 要在 Vector 中針對每個項目執行的函數。這個函數會在使用三個引數的情況下叫用:Vector 中的目前項目、項目的索引和 Vector 物件:
function callback(item:T, index:int, vector:Vector.<T>):Boolean { // your code here } 回呼函數應傳回 Boolean 值。 | |
thisObject:Object (default = null ) — 呼叫函數時回呼函數中的識別項 this 參考的物件。
|
Boolean — 如果指定的函數傳回 true ,則傳回 Boolean 值 true ,否則傳回 false 。
|
相關 API 元素
filter | () | 方法 |
AS3 function filter(callback:Function, thisObject:Object = null):Vector.<T>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
針對 Vector 中的每個項目執行測試函數,並傳回新的 Vector,其中包含針對指定之函數傳回 true
的所有項目。如果某個項目傳回 false
,則新的 Vector 中不會包括該項目。所傳回之 Vector 的基底類型符合在其上呼叫方法之 Vector 的基底類型。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。這是這個方法最常見的使用方式。
不過,假設您使用 Flash Professional,在主要時間軸的影格上建立函數,但要在不同的 this
內容中呼叫它:
function myFunction(item:T, index:int, vector:Vector.<T>):Boolean { // your code here }
假設您接著在名為 myVector
的 Vector 上使用 filter()
方法:
var result:Vector.<T> = myVector.filter(myFunction, someObject);
由於 myFunction
是 SWF 檔案主要類別的成員,不能在不同的 this
內容中執行。Flash 執行階段會在執行此程式碼時擲回例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean { //your code here }; myVector.filter(myFunction, someObject);
參數
callback:Function — 要在 Vector 中針對每個項目執行的函數。這個函數會在使用三個引數的情況下叫用:Vector 中的目前項目、項目的索引和 Vector 物件:
function callback(item:T, index:int, vector:Vector.<T>):Boolean; | |
thisObject:Object (default = null ) — 呼叫函數時回呼函數中的識別項 this 參考的物件。
|
Vector.<T> — 新 Vector,其中包含在原始 Vector 中 callback 函數傳回 true 的所有項目。
|
相關 API 元素
forEach | () | 方法 |
AS3 function forEach(callback:Function, thisObject:Object = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
針對 Vector 中的每個項目執行函數。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。這是這個方法最常見的使用方式。
不過,假設您使用 Flash Professional,在主要時間軸的影格上建立函數,但要在不同的 this
內容中呼叫它:
function myFunction(item:T, index:int, vector:Vector.<T>):void { // your code here }
假設您接著在名為 myVector
的 Vector 上使用 forEach()
方法:
myVector.forEach(myFunction, someObject);
由於 myFunction
是 SWF 檔案主要類別的成員,不能在不同的 this
內容中執行。Flash 執行階段會在執行此程式碼時擲回例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):void { //your code here }; myVector.forEach(myFunction, someObject);
參數
callback:Function — 要在 Vector 中針對每個項目執行的函數。這個函數會在使用三個引數的情況下叫用:Vector 中的目前項目、項目的索引和 Vector 物件:
function callback(item:T, index:int, vector:Vector.<T>):void; 函數呼叫的任何傳回值都會被捨棄。 | |
thisObject:Object (default = null ) — 呼叫函數時回呼函數中的識別項 this 參考的物件。
|
indexOf | () | 方法 |
AS3 function indexOf(searchElement:T, fromIndex:int = 0):int
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
在 Vector 中搜尋某個項目,並傳回該項目的索引位置。項目與 Vector 元素是使用嚴謹相等 (===
) 來比較。
參數
searchElement:T — 要在 Vector 中尋找的項目。
| |
fromIndex:int (default = 0 ) — 要在 Vector 中開始搜尋項目的位置。如果這個參數為負值,則會被視為 length + fromIndex ,表示從結尾倒數第 -fromIndex 個項目的位置開始搜尋,並且從該位置向前搜尋直到 Vector 的結尾。
|
int — 此項目在 Vector 中的索引位置 (從零開始)。如果找不到 searchElement 引數,傳回值會是 -1。
|
相關 API 元素
insertAt | () | 方法 |
AS3 function insertAt(index:int, element:T):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 19, AIR 19 |
將單一元素插入 Vector。這個方法會修改 Vector,但是不會製作副本。
參數
index:int — 整數,指定 Vector 中要插入元素的位置。您可以使用負整數,指定相對於 Vector 結尾的位置 (例如,-1 是 Vector 的最後一個元素)。
| |
element:T |
擲回值
RangeError — 如果在 fixed 為 true 時呼叫這個方法。
|
join | () | 方法 |
AS3 function join(sep:String = ","):String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
將 Vector 中的元素轉換成字串、在元素之間插入指定的分隔符號、連接元素,然後傳回結果字串。巢狀的 Vector 永遠是用逗號 (,) 來分隔,而不是用傳遞給 join()
方法的分隔符號來分隔。
參數
sep:String (default = ", ") — 在傳回的字串中分隔 Vector 元素的字元或字串。如果省略這個參數,便會使用逗號做為預設分隔符號。
|
String — 字串,由轉換成字串的 Vector 元素組成,並以指定的字串分隔。
|
相關 API 元素
lastIndexOf | () | 方法 |
AS3 function lastIndexOf(searchElement:T, fromIndex:int = 0x7fffffff):int
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
在 Vector 中搜尋某個項目 (從指定的索引位置向後搜尋),並傳回符合之項目的索引位置。項目與 Vector 元素是使用嚴謹相等 (===
) 來比較。
參數
searchElement:T — 要在 Vector 中尋找的項目。
| |
fromIndex:int (default = 0x7fffffff ) — 要在 Vector 中開始搜尋項目的位置。預設為允許的最大索引值,表示從 Vector 中的最後一個項目開始搜尋。
如果這個參數為負值,則會被視為 |
int — 此項目在 Vector 中的索引位置 (從零開始)。如果找不到 searchElement 引數,傳回值會是 -1。
|
相關 API 元素
map | () | 方法 |
AS3 function map(callback:Function, thisObject:Object = null):Vector.<T>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
針對 Vector 中的每個項目執行函數,並傳回新的 Vector,其中的項目會分別對應於針對此 Vector 中每個項目呼叫函數的結果。結果 Vector 有與原始 Vector 相同的基底類型和 length
。結果 Vector 中位於索引 i
的元素就是針對原始 Vector 中位於索引 i
的元素呼叫函數所產生的結果。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。這是這個方法最常見的使用方式。
不過,假設您使用 Flash Professional,在主要時間軸的影格上建立函數,但要在不同的 this
內容中呼叫它:
function myFunction(item:Object, index:int, vector:Vector.<T>):T { // your code here }
假設您接著在名為 myVector
的 Vector 上使用 map()
方法:
myVector.map(myFunction, someObject);
由於 myFunction
是 SWF 檔案主要類別的成員,不能在不同的 this
內容中執行。Flash 執行階段會在執行此程式碼時擲回例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):void { //your code here }; myVector.map(myFunction, someObject);
參數
callback:Function — 要在 Vector 中針對每個項目執行的函數。這個函數會在使用三個引數的情況下叫用:Vector 中的目前項目、項目的索引和 Vector 物件:
function callback(item:T, index:int, vector:Vector.<T>):T; | |
thisObject:Object (default = null ) — 呼叫函數時回呼函數中的識別項 this 參考的物件。
|
Vector.<T> — 新 Vector,其中包含針對此 Vector 中每個項目呼叫函數的結果。結果 Vector 有與原始 Vector 相同的基底類型和 length 。
|
相關 API 元素
pop | () | 方法 |
AS3 function pop():T
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
移除 Vector 中的最後一個元素,並傳回該元素。呼叫這個函數時,Vector 的 length
屬性會減掉一。
T — 指定的 Vector 中最後一個元素的值。
|
擲回值
RangeError — 如果在 fixed 為 true 時呼叫這個方法。
|
相關 API 元素
push | () | 方法 |
AS3 function push(... args):uint
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
在 Vector 結尾加入一個或多個元素,並傳回新的 Vector 長度。
因為這個函數可以接受多個引數,所以即使在嚴謹模式中,也不會於編譯階段檢查引數的資料類型。但若傳遞的引數不是基底類型的實體,則會在執行階段發生例外。
參數
... args — 要附加至 Vector 的一個或多個值。
|
uint — Vector 在加入新元素之後的長度。
|
擲回值
TypeError — 如果任何引數不是 Vector 之基底類型 T 的實體。
| |
RangeError — 如果在 fixed 為 true 時呼叫這個方法。
|
相關 API 元素
removeAt | () | 方法 |
AS3 function removeAt(index:int):T
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 19, AIR 19 |
從 Vector 中移除單一元素。這個方法會修改 Vector,但是不會製作副本。
參數
index:int — 整數,用以指定 Vector 中要刪除之元素的索引。您可以使用負整數,指定相對於 Vector 結尾的位置 (例如,-1 是 Vector 的最後一個元素)。
|
T — 要從原始 Vector 中移除的元素。
|
擲回值
RangeError — 如果 index 引數指定要刪除的索引超出 Vector 的邊界。
| |
RangeError — 如果在 fixed 為 true 時呼叫這個方法。
|
reverse | () | 方法 |
shift | () | 方法 |
AS3 function shift():T
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
移除 Vector 中的第一個元素,並傳回該元素。剩餘的 Vector 元素會從其原始位置 i 移到 i - 1。
傳回值T — Vector 中的第一個元素。
|
擲回值
RangeError — 如果 fixed 為 true 。
|
相關 API 元素
slice | () | 方法 |
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Vector.<T>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
傳回新的 Vector,此新 Vector 會包含原始 Vector 的元素範圍,但是不會修改原始 Vector。傳回的 Vector 包含 startIndex
元素及其後的所有元素,但是不包含 endIndex
元素。
如果您沒有傳遞任何參數,新的 Vector 便會是原始 Vector 的重製副本 (陰影副本)。如果您對這兩個參數傳遞 0 值,則會建立與原始 Vector 相同類型的新空白 Vector。
參數
startIndex:int (default = 0 ) — 數字,指定片段開始點的索引。 如果 startIndex 為負值,表示起點是從 Vector 的結尾開始,而 -1 就是指最後一個元素。
| |
endIndex:int (default = 16777215 ) — 數字,指定片段結束點的索引。 如果您省略這個參數,這個片段就會包含從 Vector 起點到 Vector 結尾的所有元素。如果 endIndex 為負值,表示指定的終點是在 Vector 的結尾,而 -1 就是指最後一個元素。
|
Vector.<T> — 由原始 Vector 中的元素範圍組成的 Vector。
|
some | () | 方法 |
AS3 function some(callback:Function, thisObject:Object = null):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
針對 Vector 中的每個項目執行測試函數,直到到達傳回 true
的項目為止。您可以使用此方法,判斷 Vector 中的所有項目是否符合準則,如具有小於特定數字的值。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。這是這個方法最常見的使用方式。
不過,假設您在主要時間軸的影格上建立函數,但要在不同的 this
內容中呼叫它:
function myFunction(item:Object, index:int, vector:Vector.<T>):Boolean { // your code here }
假設您接著在名為 myVector
的 Vector 上使用 some()
方法:
myVector.some(myFunction, someObject);
由於 myFunction
是 SWF 檔案主要類別的成員,不能在不同的 this
內容中執行。Flash 執行階段會在執行此程式碼時擲回例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(item:T, index:int, vector:Vector.<T>):Boolean { //your code here }; myVector.some(myFunction, someObject);
參數
callback:Function — 要在 Vector 中針對每個項目執行的函數。這個函數會在使用三個引數的情況下叫用:Vector 中的目前項目、項目的索引和 Vector 物件:
function callback(item:T, index:int, vector:Vector.<T>):Boolean 回呼函數應傳回 Boolean 值。 | |
thisObject:Object (default = null ) — 呼叫函數時回呼函數中的識別項 this 參考的物件。
|
Boolean — 如果 Vector 中有任何項目針對指定的函數傳回 true ,則傳回 Boolean 值 true ,否則傳回 false 。
|
相關 API 元素
sort | () | 方法 |
AS3 function sort(sortBehavior:*):Vector.<T>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
排序 Vector 物件中的元素,同時傳回已排序的 Vector 物件。這個方法會根據參數 sortBehavior
進行排序,該參數可能是比較兩個值的函數,或是一組排序選項。
方法會使用一個參數。參數為下列其中一項:
- 函數,使用 Vector 之基底類型 (
T
) 的兩個引數,並且傳回一個數字:function compare(x:T, y:T):Number {}
函數的邏輯是,指定兩個元素
x
和y
時,此函數會傳回下列三個值的其中一項:- 如果
x
在排序序列中應出現在y
的前面,其值為負值 - 如果
x
等於y
,其值為 0 - 如果
x
在排序序列中應出現在y
的後面,其值為正值
- 如果
- 屬於下列值的位元 OR 的數字:
- 1 或
Array.CASEINSENSITIVE
- 2 或
Array.DESCENDING
- 4 或
Array.UNIQUESORT
- 8 或
Array.RETURNINDEXEDARRAY
- 16 或
Array.NUMERIC
如果值為 0,則排序會以下列方式運作:
- 排序動作有區分大小寫 (Z 位於 a 之前)。
- 以遞增方式排序 (a 位於 b 之前)。
- 陣列會遭到修改,以反映出排序順序;具有相同排序欄位的多個元素會被連續置於排序陣列中 (不會依照特定順序)。
- 所有的元素,無論屬於何種資料類型,都會如字串般排序。所以 100 會在 99 之前,因為 "1" 是比 "9" 低的字串值。
- 1 或
參數
sortBehavior:* — Function 或 Number 值,決定排序的行為。Function 參數會指定比較方法。Number 值會指定排序選項。
|
Vector.<T> — Vector 物件,並且依照新順序排序元素。
|
相關 API 元素
splice | () | 方法 |
AS3 function splice(startIndex:int, deleteCount:uint = 4294967295, ... items):Vector.<T>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
在 Vector 中增加和移除元素。這個方法會修改 Vector,但是不會製作副本。
注意:若要在 Vector 的子類別中覆寫此方法,請使用 ...args
做為參數,如下列範例所示:
public override function splice(...args) { // your statements here }
參數
startIndex:int — 整數,指定 Vector 中插入或刪除開始位置之元素的索引。您可以使用負整數,指定相對於 Vector 結尾的位置 (例如,-1 是 Vector 的最後一個元素)。
| |
deleteCount:uint (default = 4294967295 ) — 整數,指定要刪除的元素數目。 這個數字會包含 startIndex 參數中所指定的元素。 如果這個值為 0,則不會刪除任何元素。
| |
... items — 含有一個或多個逗號分隔值的選擇性清單,以便將其插入此 Vector 中 startIndex 參數所指定的位置。
|
Vector.<T> — Vector,其中包含從原始 Vector 中移除的元素。
|
擲回值
RangeError — 如果 startIndex 和 deleteCount 引數指定要刪除的索引超出 Vector 的邊界。
| |
RangeError — 如果在 fixed 為 true 而且 splice() 作業變更了 Vector 的length 時呼叫這個方法。
|
toLocaleString | () | 方法 |
toString | () | 方法 |
unshift | () | 方法 |
AS3 function unshift(... args):uint
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
在 Vector 開頭加入一個或多個元素,並傳回新的 Vector 長度。Vector 中的其他元素會從其原始位置 i 移到 i + 新元素數目的位置。
因為這個函數可以接受多個引數,所以即使在嚴謹模式中,也不會於編譯階段檢查引數的資料類型。但若傳遞的引數不是基底類型的實體,則會在執行階段發生例外。
參數
... args — Vector 基底類型要在 Vector 開頭插入的一個或多個實體。
|
uint — 整數,代表 Vector 的新長度。
|
擲回值
TypeError — 如果任何引數不是 Vector 之基底類型 T 的實體。
| |
RangeError — 如果在 fixed 為 true 時呼叫這個方法。
|
相關 API 元素
Tue Jun 12 2018, 03:47 PM Z