是否。<number>无法用数字数组初始化?</number>

时间:2011-05-29 01:19:48

标签: flash actionscript flex4

您将如何初始化Vector。比如值1,2,3,4和5.

逻辑会说你可以做newVector = new Vector。 ([1,2,3,4,5]);

但是这会给你一个空的矢量。

您也可以尝试这样的事情......

var tmp = [1, 2, 3, 4, 5];
newVector = new Vector.();
newVector = newVector.concat(tmp);

但是你得到一个类型错误,将Array转换为Vector。

我很难过,我错过了一些愚蠢的东西,或者矢量类真的不适合使用数字类型吗?您可以尝试将它们设为十进制数,以确保它们被转换为数字而不是int。

2 个答案:

答案 0 :(得分:2)

你的语法错误。

应该是:

        var foo:Vector.<int> = new <int>[3,2,4];
        trace( foo ); // traces "3,2,4"

另一方面,这样做是不可能的:

        var bar:Array = [5, 3, 1];
        var baz:Vector.<int> = new <int>bar; // Syntax Error

答案 1 :(得分:2)

我从未以EyeSeeEm评论的方式做过,我的工作是:

var foo:Vector.<Number> = Vector.<Number>([3, 2.9, 1]);

它允许这样做:

var arr:Array = [3, 2.9, 1];
var foo:Vector.<Number> = Vector.<Number>(arr);