您当前的位置: 首页 > 

Jave.Lin

暂无认证

  • 2浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

Jave.Lin 发布时间:2013-06-26 17:21:32 ,浏览量:2

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{
		/**
		 * 获取类定义的所有变量成员名称
		 * 
		 * 
		 * e.g.
		 * class Test{
		 *		public var a:String;
		 * 		public var b:String;
		 * }
		 * var result:Vector. = getTypeVarsNameArr(Test);
		 * result就带有了["a", "b"]的结果;
		 * 但名称的顺序是无序的;
		 * 
		 * 
		 * */
		public static function getTypeVarsNameArr(cls:Class):Vector.{
			var result:Vector. = new Vector.();
			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. = getTypeVarsNameArr(Test);
			trace(result);
结果我们可以在“表达式”列表中看到:

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

关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.0570s