as3 中的反射应用,如:获取自定义类的成员信息

class Test
	public var test1:String = "";
	public var test2:String = "";
	public var test3:String = "";
}

上面Test类是测试用的类

里面有三个变量,我们可能通反射将其获取

package
{
	import flash.utils.describeType;

	/**
	 * 反射工具类
	 * @author jave.lin
	 * @date 2013-6-26
	 */	
	public class ReflectionUtil{
		/**
		 * 获取类定义的所有变量成员名称
		 * <listing version="3.0">
		 * <font size='2'>
		 * e.g.
		 * class Test{
		 *		public var a:String;
		 * 		public var b:String;
		 * }
		 * var result:Vector.<String> = getTypeVarsNameArr(Test);
		 * result就带有了["a", "b"]的结果;
		 * 但名称的顺序是无序的;
		 * </font>
		 * <listing/>
		 * */
		public static function getTypeVarsNameArr(cls:Class):Vector.<String>{
			var result:Vector.<String> = new Vector.<String>();
			var xml:XML = describeType(cls);
			for (var i:int = 0; i < xml.factory.variable.length(); i++){
				var xmlNode:XML = xml.factory.variable[i];
				result.push(xml.factory.variable[i].@name);
			}
			return result;
		}
	}
}

调用:

			var result:Vector.<String> = getTypeVarsNameArr(Test);
			trace(result);

结果我们可以在“表达式”列表中看到:

"result"	__AS3__.vec.Vector.<String> (@468c8f9)	
	[0]	"test3"	
	[1]	"test1"	
	[2]	"test2"	
	fixed	false	
	length	3	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值