Что это?
Класс Vector появился в языке ActionScript 3.0 с версиями Flash Player 10 и AIR 1.5.
Vector - это индексированный массив, все элементы которого принадлежат к одному (базовому) типу данных (элементы обычного массива могут относится к разным типам данных). Попытка записать в один объект Vector элементы, относящиеся к разным типам данных, приведёт к генерации ошибки. При этом в качестве базового типа данных для массива Vector может выступать любой встроенный или пользовательский тип данных (класс).
Создание массива Vector:
Код ActionScript 3.0
var имя_переменной:Vector.<базовый_тип_данных> = new Vector.<базовый_тип_данных>();
Примеры:
Код ActionScript 3.0
var arr:Vector.<int> = new Vector.<int>();
var arr:Vector.<uint> = new Vector.<uint>();
var arr:Vector.<Number> = new Vector.<Number>();
var arr:Vector.<String> = new Vector.<String>();
var arr:Vector.<Sprite> = new Vector.<Sprite>();
При создании данного типа массива можно указать параметры:
var имя_переменной:Vector.<базовый_тип_данных> = new Vector.<базовый_тип_данных>(длина_массива, fixed);
где:
fixed - принимает значение true или false в зависимости от того, является ли данный массив массивом с фиксированной длиной или нет. Если массив имеет фиксированную длину (fixed = true), то длина такого массива является постоянной величиной и её изменять нельзя.
Пример:
Код ActionScript 3.0
var arr:Vector.<String> = new Vector.<String>(10, true);
Также существует аналогичное свойство fixed:
Код ActionScript 3.0
var arr:Vector.<String> = new Vector.<String>(10);
arr.fixed = true;
Использование
Vector используется также, как и Array, но:
- все элементы в массиве Vector должны быть заполнены (для Array таких ограничений нет);
То есть следующий код будет работать корректно:
Код ActionScript 3.0
var arr:Vector.<int> = new Vector.<int>();
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
Но если мы не заполним индекс 1 в данном массиве, то это спровоцирует ошибку:
Код ActionScript 3.0
var arr:Vector.<int> = new Vector.<int>();
arr[0] = 0;
arr[2] = 2;
- если для массива Vector явно указана его длина, то это ограничение уже нельзя обойти;
- сортировка массива Vector отличается от сортировки обычного массива.
Плюсы и минусы использования Vector
Плюсы:
- прирост производительности (в каждом конкретном случае этот выигрыш в производительности будет разным; увеличению производительности также способствует явное задание длинны массива при его создании);
- легче отследить ошибки, допущенные при работе с массивами.
Минусы:
- данный класс поддерживается Flash Player-ом только начиная с 10-й версии.
Литература
1.) Оф. документация по ActionScript 3.0
2.) H. Paul Robertson, Programming with the Vector class
3.) Использование класса Vector в ActionScript 3 и Flash Player 10
Используется Vector почти также, как и обычные массивы, но считается, что использование Vector-а может дать прирост производительности. Тормозит приложение при работе с Array - пробуем Vector. Иногда помогает...