Airicon.pngAIR 51.0.0.2已于2024/02/23发布!

全站通知:

Vector

阅读

    

2022-09-18更新

    

最新编辑:--小小晓痴--

阅读:

  

更新日期:2022-09-18

  

最新编辑:--小小晓痴--

来自ActionScript 3.0WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
晓痴Developer

Vector()函数
public function Vector(sourceArray:Object):[[Vector/<T>|Vector.<T>]]
语言版本:ActionScript 3.0

运行时版本:Flash Player 10, AIR 1.5, Flash Lite 4
目 录

创建新的 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]