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结果:布尔值;
尝试
{
向量(候选)。长度;
结果=真;
}
捕获(错误:错误)
{
结果=假;
}
返回结果;
}