Я хочу проверить, является ли объект вектором, любым вектором, а не только вектором одного типа.
Я провел тест:
var v:Vector.<int> = new Vector.<int>();
v.push(3);
v.push(1);
v.push(2);
trace(v is Array); // false
trace(v is Vector); // false
trace(v is Vector.<int>); // true
trace(v is Vector.<*>); // false
Кажется, что единственное, что возвращает true, это то, что указывает тип вектора, но я хочу проверить его на ЛЮБОЙ тип.
Мне понадобится очень эффективный метод сравнения, потому что getQualifiedClassName
слишком медленный.
Мой текущий подход:
private static function isVector(obj:Object):Boolean {
return (getQualifiedClassName(obj).indexOf('__AS3__.vec::Vector') == 0);
}
Но это в 2 раза медленнее, чем оператор is
.
Мне нужна скорость, потому что она предназначена для класса сериализации объектов, и она должна быть очень быстрой.