运行时版本: | Flash Player 10, AIR 1.5 |
使用 Vector 类可以访问和操作矢量(即所有元素均具有相同数据类型的数组)。Vector 的元素数据类型称作 Vector 的
基本类型。基本类型可以是任何类,包括内置类和自定义类。在声明 Vector 变量以及通过调用类构造函数创建实例时,将指定基本类型。
与 Array 类似,可以使用数组访问 ([]
) 运算符设置或检索 Vector 元素的值。一些 Vector 方法还提供了用于设置和检索元素值的机制。其中包括 push()
、pop()
、shift()
、unshift()
,等等。Vector 对象的属性和方法与 Array 的属性和方法类似(大多数情况下完全相同)。对于任何需要使用所有元素都具有相同数据类型的 Array 的情况,Vector 实例更为可取。
可使用后缀类型参数语法指定 Vector 的基本类型。类型参数语法是一个序列,其中依次包含点 (.
)、小于号 (<
)、类名称和大于号 (>
),如以下示例所示:
var v:Vector.<String>;
v = new Vector.<String>();
在此示例的第一行内容中,变量 v
声明为 Vector.<String> 实例。换句话说,它表示一个只能容纳 String 实例的 Vector(数组),并且从中只能检索 String 实例。第二行代码构造了同一 Vector 类型的实例(即,一个所有元素均为 String 对象的 Vector),并将该实例分配给 v
。
使用 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 是一种密集数组。与 Array 不同,Vector 必须在每个索引中包含一个值(或
null
),而前者可以只在索引 0 和 7 中包含值(即使位置 1 到 6 中不存在任何值)。
- Vector 可以具有固定长度,这意味着其所包含的元素数量不可更改。
- 对 Vector 的元素的访问需要接受范围检查。绝对不能从大于最后一个元素 (
length - 1
) 的索引中读取值。绝对不能对超过当前最后一个索引一个以上的索引设置值(也就是说,只能在现有索引或索引 [length]
中设置值)。
由于 Vector 具有这些限制,因此 Vector 相对于所有元素均为单个类的实例的 Array 实例有两个主要优点:
- 性能:使用 Vector 实例时的数组元素访问和迭代的速度比使用 Array 时的速度要快很多。
- 类型安全性:在严格模式下,编译器可以识别数据类型错误,例如,将数据类型错误的值分配给 Vector 或从 Vector 中读取值时使用错误的数据类型。但请注意,当使用
push()
方法或 unshift()
方法向 Vector 添加值时,在编译时不会检查参数的数据类型,而会在运行时检查。
fixed:Boolean
[读写]
运行时版本: | Flash Player 10, AIR 1.5 |
指示能否更改 Vector 的 length
属性。如果值为 false
,则无法更改 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:uint
[读写]
运行时版本: | Flash Player 10, AIR 1.5 |
Vector 中可用的有效索引的范围。Vector 实例具有最大不超过 length
值的索引位置(但不包括此值)。
每个 Vector 元素始终具有一个值,该值要么为一个基本类型的实例,要么为 null
。若将 length
属性设置为一个大于其先前值的值时,则将创建额外的元素,并使用适合基本类型的默认值(对于引用类型使用 null
)来填充这些元素。
当 length
属性设置为一个小于其先前值的值时,将从 Vector 中删除位于大于或等于新 length
值的索引位置处的所有元素。
实现 public function get length():uint
public function set length(value:uint):void
引发 public function Vector(length:uint = 0, fixed:Boolean = false)
运行时版本: | Flash Player 10, AIR 1.5 |
使用指定的基本类型创建 Vector。
当调用 Vector.<T>()
构造函数时,将使用类型参数语法指定基本类型。类型参数语法是一个序列,其中依次包含点 (.
)、小于号 (<
)、类名称和大于号 (>
),如以下示例所示:
与 Array 类不同,不能使用 Vector.<T>()
构造函数来创建预填充的 Vector 实例。若要从一个 Array 或另一个 Vector(例如具有不同的基本类型的 Vector)创建 Vector 实例,请使用 Vector()
全局函数。
参数 | length:uint (default = 0 ) — Vector 的初始长度(元素数目)。如果此参数大于零,则将创建指定数目的 Vector 元素,并使用适合基本类型的默认值(对于引用类型将使用 null )进行填充。
|
|
| fixed:Boolean (default = false ) — Vector 的长度是固定的 (true ) 还是可变的 (false )。可以使用 fixed 属性设置此值。
|
另请参见
AS3 function concat(... args):Vector.<T>
运行时版本: | Flash Player 10, AIR 1.5 |
将参数中指定的元素与 Vector 中的元素进行连接并创建新的 Vector。如果这些参数指定一个 Vector,则将连接该 Vector 中的元素。
参数
| ... args — 将要在新的 Vector 中进行连接的此 Vector 的基本类型的一个或多个值。如果未传递任何值,则新 Vector 将是原始 Vector 的副本。
|
返回 | Vector.<T> — 一个与此 Vector 具有相同的基本类型的 Vector,并且其中包含此 Vector 中的元素,后跟参数中的元素。
|
引发 AS3 function every(callback:Function, thisObject:Object = null):Boolean
运行时版本: | Flash Player 10, AIR 1.5 |
对 Vector 中的每一项执行测试函数,直到获得对指定的函数返回 false
的项。使用此方法可确定 Vector 中的所有项是否满足某一条件,如具有小于某一特定数字的值。
参数
| callback:Function — 要对 Vector 中的每一项运行的函数。调用此函数时需要使用以下三个参数:Vector 中的当前项、当前项的索引和 Vector 对象:
function callback(item:T, index:int, vector:Vector.<T>):void;
|
|
| thisObject:Object (default = null ) — 调用 callback 函数时该函数中的标识符 this 引用的对象。
|
返回 | Boolean — 在对 Vector 中的所有项调用指定函数时若返回 true ,则为布尔值 true ;否则为 false 。
|
另请参见
AS3 function filter(callback:Function, thisObject:Object = null):Vector.<T>
运行时版本: | Flash Player 10, AIR 1.5 |
对 Vector 中的每一项执行测试函数,并返回一个新 Vector,其中包含的所有项都对指定的函数返回 true
。如果某项返回 false
,则结果 Vector 中将不包含此项。返回的 Vector 的基本类型与对其调用此方法的 Vector 的基本类型匹配。
参数
| callback:Function — 要对 Vector 中的每一项运行的函数。调用此函数时需要使用以下三个参数:Vector 中的当前项、当前项的索引和 Vector 对象:
function callback(item:T, index:int, vector:Vector.<T>):Boolean;
|
|
| thisObject:Object (default = null ) — 调用 callback 函数时该函数中的标识符 this 引用的对象。
|
返回 | Vector.<T> — 一个新的 Vector,其中包含原始 Vector 中 callback 函数为其返回 true 的所有项目。
|
另请参见
AS3 function forEach(callback:Function, thisObject:Object = null):void
运行时版本: | Flash Player 10, AIR 1.5 |
对 Vector 中的每一项执行某个函数。
参数
| callback:Function — 要对 Vector 中的每一项运行的函数。调用此函数时需要使用以下三个参数:Vector 中的当前项、当前项的索引和 Vector 对象:
function callback(item:T, index:int, vector:Vector.<T>):void;
通过此函数调用获得的任何返回值都将被丢弃。
|
|
| thisObject:Object (default = null ) — 调用 callback 函数时该函数中的标识符 this 引用的对象。
|
AS3 function indexOf(searchElement:T, fromIndex:int = 0):int
运行时版本: | Flash Player 10, AIR 1.5 |
搜索 Vector 中的某个项,并返回该项的索引位置。使用全等运算符 (===
) 将此项与 Vector 元素进行比较。
参数
| searchElement:T — 要在 Vector 中查找的项。
|
|
| fromIndex:int (default = 0 ) — 要在 Vector 中开始搜索指定项的位置。如果此参数为负数,则将其视为 length + fromIndex ,这意味着搜索将从末尾倒数第 -fromIndex 项开始,并从该位置向前搜索直到 Vector 的末尾。
|
返回 | int — Vector 中的项的从零开始的索引位置。如果未找到 searchElement 参数,则返回值为 -1。
|
另请参见
AS3 function join(sep:String = ","):String
运行时版本: | Flash Player 10, AIR 1.5 |
将 Vector 中的元素转换为字符串,在元素间插入指定的分隔符,连接这些元素,然后返回结果字符串。嵌套 Vector 总是以逗号 (,) 分隔,而不使用传递给 join()
方法的分隔符分隔。
参数
| sep:String (default = ", ") — 在返回字符串中分隔 Vector 元素的字符或字符串。如果省略此参数,则使用逗号作为默认分隔符。
|
返回 | String — 一个字符串,它由转换为字符串并以指定字符串分隔的 Vector 元素组成。
|
另请参见
AS3 function lastIndexOf(searchElement:T, fromIndex:int = 0x7fffffff):int
运行时版本: | Flash Player 10, AIR 1.5 |
在 Vector 中搜索一个项(从指定的索引位置向后搜索),并返回匹配项的索引位置。使用全等运算符 (===
) 将此项与 Vector 元素进行比较。
参数
| searchElement:T — 要在 Vector 中查找的项。
|
|
| fromIndex:int (default = 0x7fffffff ) — 要在 Vector 中开始搜索指定项的位置。默认值为允许的最大索引值,这表示搜索从 Vector 中的最后一项开始。
如果此参数为负数,则将其视为 length + fromIndex ,这意味着搜索将从末尾倒数第 -fromIndex 项开始,并且从该位置向后搜索直到索引 0。
|
返回 | int — Vector 中的项的从零开始的索引位置。如果未找到 searchElement 参数,则返回值为 -1。
|
另请参见
AS3 function map(callback:Function, thisObject:Object = null):Vector.<T>
运行时版本: | Flash Player 10, AIR 1.5 |
对 Vector 中的每一项执行函数并返回一个新 Vector,其中包含与此 Vector 中的每一项的函数调用结果相对应的项。结果 Vector 具有与原始 Vector 相同的基本类型和 length
。位于结果 Vector 中的索引 i
位置的元素是对位于原始 Vector 中的索引 i
位置的元素进行调用所获得的结果。
参数
| callback:Function — 要对 Vector 中的每一项运行的函数。调用此函数时需要使用以下三个参数:Vector 中的当前项、当前项的索引和 Vector 对象:
function callback(item:T, index:int, vector:Vector.<T>):T;
|
|
| thisObject:Object (default = null ) — 调用 callback 函数时该函数中的标识符 this 引用的对象。
|
返回 | Vector.<T> — 一个新 Vector,其中包含对此 Vector 中的每一项调用函数所获得的结果。结果 Vector 具有与原始 Vector 相同的基本类型和 length 。
|
另请参见
AS3 function pop():T
运行时版本: | Flash Player 10, AIR 1.5 |
删除 Vector 中的最后一个元素,并返回该元素。当调用此函数时,将 Vector 的 length
属性值减一。
返回 | T — 指定的 Vector 中最后一个元素的值。
|
引发另请参见
AS3 function push(... args):uint
运行时版本: | Flash Player 10, AIR 1.5 |
将一个或多个元素添加到 Vector 的结尾,并返回该 Vector 的新长度。
由于此函数可接受多个参数,因此在编译时不会检查参数的数据类型(即使在严格模式下也不检查)。但是,如果传递的参数不是基本类型的实例,则在运行时会出现异常。
参数
| ... args — 要追加到 Vector 中的一个或多个值。
|
返回 | uint — 添加新元素后的 Vector 的长度。
|
引发另请参见
AS3 function reverse():Vector.<T>
运行时版本: | Flash Player 10, AIR 1.5 |
颠倒 Vector 中元素的顺序。此方法会改变对其进行调用的 Vector。
返回 AS3 function shift():T
运行时版本: | Flash Player 10, AIR 1.5 |
删除 Vector 中的第一个元素,并返回该元素。其余的 Vector 元素将从其原始位置 i 移至 i - 1。
返回引发另请参见
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Vector.<T>
运行时版本: | Flash Player 10, AIR 1.5 |
返回由原始 Vector 中某一范围的元素构成的新 Vector,而不修改原始 Vector。返回的 Vector 包括从 startIndex
元素开始到 endIndex
元素(但不包括该元素)的所有元素。
如果您没有传递任何参数,则创建原始 Vector 的一个副本。
参数
| startIndex:int (default = 0 ) — 一个数字,指定片段起始点的索引。如果 startIndex 是负数,则起始点从 Vector 的末尾开始,其中 -1 表示最后一个元素。
|
|
| endIndex:int (default = 16777215 ) — 一个数字,指定片段终点的索引。如果省略此参数,则片段包括从起始点到 Vector 的末尾的所有元素。如果 endIndex 是负数,则从 Vector 的末尾指定终点,其中 -1 表示最后一个元素。
|
返回 | Vector.<T> — 一个 Vector,其中包含原始 Vector 中某一范围的元素。
|
AS3 function some(callback:Function, thisObject:Object = null):Boolean
运行时版本: | Flash Player 10, AIR 1.5 |
对 Vector 中的每一项执行测试函数,直到获得返回 true
的项。使用此方法可确定 Vector 中的所有项是否满足条件,如具有小于某一特定数字的值。
参数
| callback:Function — 要对 Vector 中的每一项运行的函数。调用此函数时需要使用以下三个参数:Vector 中的当前项、当前项的索引和 Vector 对象:
function callback(item:T, index:int, vector:Vector.<T>):Boolean;
|
|
| thisObject:Object (default = null ) — 调用 callback 函数时该函数中的标识符 this 引用的对象。
|
返回 | Boolean — 如果 Vector 中的所有项对于指定的函数都返回 true ,则为布尔值 true ;否则为 false 。
|
另请参见
AS3 function sort(compareFunction:Function):Vector.<T>
运行时版本: | Flash Player 10, AIR 1.5 |
对 Vector 中的元素进行排序。此方法根据作为 compareFunction
参数提供的函数执行排序。
参数
| compareFunction:Function — 一种可确定排序行为的比较方法。
指定的方法必须采用两个 Vector 基本类型 (T ) 的参数并返回一个 Number:
function compare(x:T, y:T):Number {}
compareFunction 函数的逻辑为:给定两个元素 x 和 y ,此函数将返回以下三个值之一:
- 一个负数,如果
x 应在排序后的序列中出现在 y 之前
- 0,如果
x 等于 y
- 一个正数,如果
x 应在排序后的序列中出现在 y 之后
|
返回 | Vector.<T> — 其中的元素按新顺序进行排序的 Vector。
|
AS3 function splice(startIndex:int, deleteCount:uint, ... items):Vector.<T>
运行时版本: | Flash Player 10, AIR 1.5 |
对 Vector 添加元素以及从 Vector 中删除元素。此方法会修改 Vector 但不制作副本。
注意:要在 Vector 的子类中覆盖此方法,请使用 ...args
作为参数,如下例所示:
public override function splice(...args) {
// your statements here
}
参数
| startIndex:int — 一个整数,它指定 Vector 中开始进行插入或删除的位置处的元素的索引。可以用一个负整数来指定相对于 Vector 的末尾的位置(例如,-1 表示 Vector 的最后一个元素)。
|
|
| deleteCount:uint — 一个整数,它指定要删除的元素数量。 该数量包括 startIndex 参数中指定的元素。 如果没有为 deleteCount 参数指定值,则该方法将删除从 startIndex 元素到 Vector 中最后一个元素的所有值。如果该参数的值为 0,则不删除任何元素。
|
|
| ... items — 以逗号分隔的一个或多个值的可选列表或 Vector,其将插入到 Vector 中由 startIndex 参数指定的位置。
|
返回 | Vector.<T> — 一个 Vector,其中包含已从原始 Vector 中删除的元素。
|
引发 | RangeError — 如果 startIndex 和 deleteCount 参数指定要删除的索引超出了 Vector 的范围。
|
|
| RangeError — 如果在 fixed 为 true 且 splice() 操作更改 Vector 的 length 时调用此方法。
|
public function toLocaleString():String
运行时版本: | Flash Player 10, AIR 1.5 |
返回一个字符串,它表示指定 Vector 中的元素。Vector 中的每一个元素(从索引 0 开始到最大索引结束)均会转换为一个连接字符串,并以逗号分隔。在 ActionScript 3.0 实现中,此方法与 Vector.toString()
方法返回相同的值。
返回另请参见
public function toString():String
运行时版本: | Flash Player 10, AIR 1.5 |
返回一个字符串,它表示 Vector 中的元素。Vector 中的每一个元素(从索引 0 开始到最大索引结束)均会转换为一个连接字符串,并以逗号分隔。若要指定自定义的分隔符,请使用 Vector.join()
方法。
返回另请参见
AS3 function unshift(... args):uint
运行时版本: | Flash Player 10, AIR 1.5 |
将一个或多个元素添加到 Vector 的开头,并返回该 Vector 的新长度。Vector 中的其他元素从其原始位置 i 移到 i + 新元素的数目。
由于此函数可接受多个参数,因此在编译时不会检查参数的数据类型(即使在严格模式下也不检查)。但是,如果传递的参数不是基本类型的实例,则在运行时会出现异常。
参数
| ... args — 要在 Vector 的开头插入的 Vector 的基本类型的一个或多个实例。
|
返回 | uint — 一个整数,表示 Vector 的新长度。
|
引发另请参见
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Sun Dec 14 2008, 10:39 PM -08:00