由于AS3中的数组有两种类型可以表示:Array、Vector.,在AS3,如果你要判断某个对象是否为数组,可以使用以下方法
/**
* @author Jave.Lin
* @date 2013-10-23
*/
private function checkItemArrType(value:Object):void
{
// // 方法一:利用属性,与方法来过滤类型,但不能100%过滤错误
// if(!value) throw new Error("value == null");
// // 检查属性
// if(value.hasOwnProperty("length")) throw new Error("value is not Array or Vector");
// try
// {
// // 检查方法
// value["indexOf"];
// value["push"];
// value["splice"];
// }
// catch(er:ReferenceError)
// {
// throw new Error("value is not Array or Vector");
// }
// 方法二:利用反射类型来判断,对错误的过滤比较好
// 先过滤Array
if(value is Array) return;
// 再过滤Vector
var xml:XML = describeType(value);
var type:String = ("" + xml.@name)
if(!(type.length > 18 && type.slice(0, 19) == "__AS3__.vec::Vector"))
throw new Error("value is not Array or Vector");
}