AIR 51.0.0.2已于2024/02/23发布!
Vector
阅读
2022-09-18更新
最新编辑:--小小晓痴--
阅读:
更新日期:2022-09-18
最新编辑:--小小晓痴--
Vector()函数
public function Vector(sourceArray:Object):[[Vector/<T>|Vector.<T>]]
语言版本:ActionScript 3.0
创建新的 Vector 实例,其元素为指定数据类型的实例。在调用此函数时,可使用类型参数指定结果 Vector 元素的数据类型(Vector 的基本类型)。此函数使用的语法与声明 Vector 实例或调用 new Vector.<T>() 构造函数时所使用的语法相同:
var v:Vector.<String> = Vector.<String>(["Hello", "World"]);
用 sourceArray 参数的元素中的值填充结果 Vector。如果 sourceArray 参数已经是 Vector.<T> 实例(其中 T 为基本类型),则函数将返回该 Vector。否则,将用 sourceArray Array 或 Vector 的元素填充结果 Vector。
在上述任一情况下,sourceArray 参数的所有元素的数据类型都必须与函数调用中指定的基本类型 T 匹配。
如果 sourceArray 参数的 length 为 0,则此函数将返回一个空白 Vector。
如果 Vector 作为 sourceArray 参数传递且其基本类型不是 T,或者如果传递一个 Array 且其元素并不全是数据类型 T 的实例,则会尝试将值转换为基本类型。如果这些值可以自动转换,则结果 Vector 中会包含转换后的值。如果无法进行任何转换,则会出现一个错误。
同样,如果 sourceArray 参数中的某个元素是基本类型 T 的子类的实例,则调用成功,并且该元素将添加到结果 Vector 中。即使 sourceArray 参数是一个 Vector 并且其基本类型是 T 的子类,也会出现上述情况。实际上,只有通过这种方法才能将基本类型为 T 的 Vector 转换为基本类型为 T 的子类的 Vector。
例如,由于以下代码尝试将 Vector.<Sprite> 分配给 Vector,因此该代码在严谨模式下会导致出现编译错误或在运行时导致出现 TypeError。<DisplayObject> 变量(Sprite 是 DisplayObject 的子类):
var v1:Vector.<Sprite> = new Vector.<Sprite>();
v1[0] = new Sprite();
var v2:Vector.<DisplayObject> = v1;
以下替代版本的代码可成功地将 Vector.<Sprite> 实例的元素复制到 Vector.<DisplayObject> 实例中:
var v1:Vector.<Sprite> = new Vector.<Sprite>();
v1[0] = new Sprite();
var v2:Vector.<DisplayObject> = Vector.<DisplayObject>(v1);
参数
sourceArray:Object — 一个 Array 或 Vector 实例,其元素会成为结果 Vector 的元素。如果参数是一个 Vector 实例并且其关联数据类型与指定的数据类型相同,则该参数作为函数结果返回。
返回
Vector.<T> — 一个用 sourceArray 数组的元素来填充的 Vector 实例。
引发
TypeError — 如果 sourceArray 参数包含无法转换为指定数据类型的元素。
本页面部分内容来自Adobe ActionScript 3.0 API参考[1]。