Vector. <Number>невозможно инициализировать с помощью числового массива? - PullRequest
1 голос
/ 29 мая 2011

Как бы вы пошли об инициализации вектора.скажем, значения 1, 2, 3, 4 и 5.

Логика скажет, что вы можете сделать newVector = new Vector.([1, 2, 3, 4, 5]);

Но это дает вам пустой вектор.

Вы также можете попробовать что-то вроде этого ...

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

Но тогда вы получаете ошибку типа, конвертирующую Array в Vector.

Я в тупике, я что-то упустил из-за глупости или класс векторов не очень хорошо работает с числовыми типами?Вы можете попробовать сделать их десятичными числами, просто чтобы убедиться, что они приводятся как числа, а не как int.

Ответы [ 2 ]

2 голосов
/ 29 мая 2011

Я никогда не делал этого так, как комментирует 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);
2 голосов
/ 29 мая 2011

Вы только что неверно синтаксис.

Это должно быть:

        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
...