包 | 顶级 |
类 | 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 实例的 Vector(数组),并且从中只能检索 String 实例。第二行代码构造了同一 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 是一种密集数组。与 Array 不同,Vector 必须在每个索引中包含一个值(或
null
),而前者可以只在索引 0 和 7 中包含值(即使位置 1 到 6 中不存在任何值)。 - Vector 可以具有固定长度,这意味着其所包含的元素数量不可更改。
- 对 Vector 的元素的访问需要接受范围检查。绝对不能从大于最后一个元素 (
length - 1
) 的索引中读取值。绝对不能对超过当前最后一个索引一个以上的索引设置值(也就是说,只能在现有索引或索引[length]
中设置值)。
由于 Vector 具有这些限制,因此 Vector 相对于所有元素均为单个类的实例的 Array 实例有三个主要优点:
- 性能:使用 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 中的每一项执行测试函数,直到获得对指定的函数返回 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 中的每一项执行测试函数,直到获得返回 true 的项。 | Vector | ||
对 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 |
将参数列表中指定的矢量与此矢量中的元素进行连接并创建新的矢量。参数列表中的矢量必须与此矢量具有相同的基本类型或子类型。如果不传递任何参数,则返回的矢量是原始矢量的副本(浅表克隆)。
参数
... args — 零个或更多的矢量具有此矢量的基本类型或子类型。
|
Vector.<T> — 有一个与此矢量具有相同的基本类型的矢量,并且其中包含此矢量中的元素,后跟参数列表中的矢量的元素。
|
引发
TypeError — 如果有任何参数不是基本类型的矢量,则不能转换为基本类型的矢量。
|
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
为 closure 方法,则第二个参数 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 } callback 函数应返回一个布尔值。 | |
thisObject:Object (default = null ) — 调用 callback 函数时该函数中的标识符 this 引用的对象。
|
Boolean — 在对 Vector 中的所有项调用指定函数时若返回 true ,则为布尔值 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
为 closure 方法,则第二个参数 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 ) — 调用 callback 函数时该函数中的标识符 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
为 closure 方法,则第二个参数 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 ) — 调用 callback 函数时该函数中的标识符 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
为 closure 方法,则第二个参数 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 ) — 调用 callback 函数时该函数中的标识符 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 包括从 startIndex
元素开始到 endIndex
元素(但不包括该元素)的所有元素。
如果不传递任何参数,则新 Vector 是原始 Vector 的副本(浅表克隆)。如果为两个参数都传递值 0,则将创建新的与原始 Vector 相同类型的空 Vector。
参数
startIndex:int (default = 0 ) — 一个数字,指定片段起始点的索引。如果 startIndex 是负数,则起始点从 Vector 的末尾开始,其中 -1 表示最后一个元素。
| |
endIndex:int (default = 16777215 ) — 一个数字,指定片段终点的索引。如果省略此参数,则片段包括从起始点到 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
为 closure 方法,则第二个参数 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 callback 函数应返回一个布尔值。 | |
thisObject:Object (default = null ) — 调用 callback 函数时该函数中的标识符 this 引用的对象。
|
Boolean — 如果 Vector 中的所有项对于指定的函数都返回 true ,则为布尔值 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
之前 - 0,如果
x
等于y
- 一个正数,如果
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 但不制作副本。
注意:要在 Vector 的子类中覆盖此方法,请使用 ...args
作为参数,如下例所示:
public override function splice(...args) { // your statements here }
参数
startIndex:int — 一个整数,它指定 Vector 中开始进行插入或删除的位置处的元素的索引。可以用一个负整数来指定相对于 Vector 末尾的位置(例如,-1 表示 Vector 的最后一个元素)。
| |
deleteCount:uint (default = 4294967295 ) — 一个整数,它指定要删除的元素数量。该数量包括 startIndex 参数中指定的元素。如果该参数的值为 0,则不删除任何元素。
| |
... items — 以逗号分隔的一个或多个值的可选列表,此可选列表将插入 startIndex 参数中的指定位置处的 Vector。
|
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, 11:04 AM Z