Flash 在ActionScript中,是否有方法检查输入参数是否是任何类型的有效向量?

Flash 在ActionScript中,是否有方法检查输入参数是否是任何类型的有效向量?,flash,actionscript-3,actionscript,Flash,Actionscript 3,Actionscript,在以下代码中: var a:Vector.<int> ... var b:Vector.<String> ... var c:Vector.<uint> ... var c:Vector.<MyOwnClass> ... function verifyArrayLike(arr:*):Boolean { return (arr is Array || arr is Vector) } verifyArrayLike(a); verifyA

在以下代码中:

var a:Vector.<int> ...
var b:Vector.<String> ...
var c:Vector.<uint> ...
var c:Vector.<MyOwnClass> ...

function verifyArrayLike(arr:*):Boolean
{
   return (arr is Array || arr is Vector)
}

verifyArrayLike(a);
verifyArrayLike(b);
...
var a:Vector。。。
变量b:向量。。。
变量c:向量。。。
变量c:向量。。。
函数verifyArrayLike(arr:*):布尔型
{
返回(arr为数组| | arr为向量)
}
类似于(a)的验证;
类似于(b)的验证;
...
我要找的是类似于
\u var是向量的东西。

但是
向量。
不是有效的表达式,即使是向量。不能放置在操作员的右侧


有没有一种方法可以检查输入参数是否是任何类型的有效向量?

这里有一种方法可以工作。我相信一定有(当然?)更好的方法不使用字符串,但这种方法应该能让你渡过难关

/**
 * Finds out if an object is a generic Vector.
 * It works because the value returned for getQualifiedClassName(a vector) 
 * is "__AS3__.vec::Vector.<the vector's type>".
 * @param object Object Any object.
 * @return Boolean True if the object is a generic Vector, false otherwise.
 */
function isVector(object:Object):Boolean 
{
    var class_name:String = getQualifiedClassName(object);
    return class_name.indexOf("__AS3__.vec::Vector.") === 0;
}
/**
*确定对象是否为通用向量。
*它之所以有效,是因为为getQualifiedClassName(向量)返回的值

*是“\uuuu AS3\uuuuu.vec::Vector.这似乎也行得通,尽管我对不能可靠地使用(候选者是Vector)感到非常不高兴

private function isVector(candidate : *) : Boolean
{
    var result : Boolean;
    try
    {
        Vector.<*>(candidate).length;
        result = true;
    }
    catch (error : Error)
    {
        result = false;
    }

    return result;
}
私有函数isVector(候选:*):布尔值
{
var结果:布尔值;
尝试
{
向量(候选)。长度;
结果=真;
}
捕获(错误:错误)
{
结果=假;
}
返回结果;
}