Цитата:
|
мне нужен класс, унаследованный от вектора, чтобы добавить к нему методов обработки этого вектора, но так как вектор- финальный класс, в отличии от массива, такое не представляется возможным, можно ли как-то это осуществить? работать с массивами не охото из-за скорости...
|
Я бы голову не морочил и просто написал:

Код AS3:
public class MyVector
{
public const vector:Vector.<Type> = new Vector.<Type>;
public function myOperation(value:Type):void
{
vector....
}
}
// Использование
var myVector:MyVector = new MyVector();
myVector.vector[0] = new Type();
myVector.myOperation(new Type());
Инкапсуляция идёт лесом, но если оборачивать оператор доступа [] методами get(index:int):Type и set(index:int, value:Type) - пойдёт лесому же производительность, причём пойдёт очень далеко (это не haXe, inline-функций в as3 нет).
Вообще, в большинстве случаев нет выбора и приходится не давать доступ через [], а давать только через методы - просто потому что иначе целостность структуры данных ломается.
Ну и чтобы заменить Type на что-то другое придется копипастить класс

Нормального решения в AS3 для этого нет. Ну или пожертвовать типизацией и заменить Type на Object (в 90% лучше заменить на Object/*)