`
pangxin12345
  • 浏览: 186892 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

as3 反射

阅读更多
var sprite1:Sprite = new Sprite();
//获取完整类名
var classNameOfSprite:String = getQualifiedClassName(Sprite);
//获取字节码
var ClassReference:Class = getDefinitionByName(classNameOfSprite) as Class;
//实例化对象
   var instance:Sprite = new ClassReference() as Sprite ;

 //使用describeType方法以xml方式输出类信息

describeType(ProposalModelLocator.getInstance().proposalInfoAC);根据xml进行反射

package
{
	public class UserEntity
	{
		private var _username:String;
		private var _password:String;
		public function UserEntity()
		{
		}

		public function get password():String
		{
			return _password;
		}

		public function set password(value:String):void
		{
			_password = value;
		}

		public function get username():String
		{
			return _username;
		}

		public function set username(value:String):void
		{
			_username = value;
		}

	}
}

 

protected function button2_clickHandler(event:MouseEvent):void
{
	var userEntity:UserEntity = new UserEntity();
	userEntity.username="asdf";
				
	var instanceInfo:XML = describeType(userEntity);
	trace(instanceInfo);
	var properties:XMLList = instanceInfo..accessor.(@access != "writeonly") + instanceInfo..variable;
	for each (var propertyInfo:XML in properties)
       {
	      var propertyName:String = propertyInfo.@name;
	      trace(userEntity[propertyName]);
	}
}

 可以根据以下信息进行反射。

 

标签 属性 说明
<type> XML 对象的根标签
name ActionScript 对象 (ActionScript object) 类型
base 当前对象的直属超类, 如果当前 ActionScript 对象是类对象, 那那么该值为 Class .
isDynamic 如果当前 ActionScript 对象被定义为 dynamic, 那么该属性为 true , 否则为 false . 如果当前 ActionScript 对象是类对象, 那么该属性也为 true , 因为 Class 类是 dynamic 的
sFinal 如果当前 ActionScript 对象被定义为 final, 那么该属性为 true , 否则为 false
isStatic 如果当前 ActionScript 是类对象或者构造函数, 那么该属性为 true , 否则为 false . 该属性被命名为 isStatic 是因为如果值为 true 的话, 任何标签都不会被嵌套到 factory 标签中
<extendsClass> 使用 extendsClass 标签分别存放当前 ActionScript 对象的超类
type 当前 ActionScript 对象所继承的超类的名字
<implementsInterface> 使用 implementsInterface 标签分别存放当前 ActionScript 对象, 以及他的超类所实现的接口
type 当前 ActionScript 所实现的接口的名字
<accessor> 访问器是由 getter 和 setter 所定义的属性
name 该访问器的名字
access 该访问器的访问权限. 可能的值有 readonly , writeonly , 和 readwrite .
type 该属性的数据类型
declaredBy 指示由哪个类定义了该访问器
<constant> 常量是由 const 所定义的属性
name 该常量的名称
type 该常量的数据类型
<method> 方法是由类定义的一部分公开的函数
name 方法名
declaredBy 指示该方法由哪个类定义
returnType 方法的返回类型
<parameter> 使用 parameter 分别存放该方法的参数, 该标签被嵌套在 <method>
index 一个数字指示当前参数被传递时所在函数中的位置, 如果是首个参数, 那么该值为 1
type 该参数的类型
optional 如果该参数为可选的话为 true , 否则为 false
<variable> 变量 (variable) 是由 var 语句所定义的变量
name 变量名
type 变量类型
<factory> 如果当前 ActionScript 对象是类对象或者构造函数, 所有的实例属性将会被嵌套进该标签. 如果 <type> 标签的 isStatic 属性为 true , 所有属性 (properties) 和方法 (method) 将不会被嵌套进改标签中. 该标签只出现在当前 ActionScript 对象是类对象或者构造函数的情况下
分享到:
评论

相关推荐

    关于As3反射的问题

    关于As3反射的问题关于As3反射的问题

    as3反射和将XML转换成对象的类

    as3反射和将XML转换成对象的类 可以反射出属性,方法

    As2Commons反射

    學習Java的人,知道java中反射的强大,使用Flex是學習他的反射机制,发现有开源组件As2Commons实现flex的反射机制.

    as3场景中MC复制一个或多个

    说明:这个是用来实现已在场景中的Mc复制多个出来,如AS2中可以duplicateMovieClip,AS3中用是用New和addChild的, 有人会说As3可以用  方法1——反射方法: var ClassRef:Class = getDefinitionByName...

    IOS_反射机制的实例

    由本群【天空air_as3_北京】分享的关于反射理论的Demo 可以帮助理解反射的用法和原理

    反射PPT教程

    //3 定义要反射类的完全限定名称 string fullName = "myIIS.Pages." + preStr; //4 反射创建 index类的对象 IHttpHandler handler = this.GetType().Assembly.CreateInstance(fullName) as IHttpHandler; //4....

    flash反射实例

    flash AS3.0反射机制实例,自己写的,有讲解!有兴趣的可以下载看看

    MSR系列路由器BGP路由反射器配置

    Router A、Router B、Router C为AS 100,其中Rotuer B为路由反射器(RR)。

    可莱特SKMLRLED反射镜旋转警示灯产品目录.pdf

    可莱特SKMLRLED反射镜旋转警示灯产品目录pdf,特点:利用底部4个强力磁铁,吸附在车辆接触面的结构;采用大功率发光二极管为光源,发光二极管...材质 : 灯罩-AS, 底座-PC, 反射镜-耐热性 ABS;保护等级 : IP54。

    可莱特S125PT充电便携式灯泡反射镜旋转警示灯产品目录.pdf

    可莱特S125PT充电便携式灯泡反射镜旋转警示灯产品目录pdf,特点:灯泡反射镜旋转型;...材质 : 灯罩-AS, 底座-ABS, 反射镜-耐热性 ABS, 电池外壳-STEEL;保护等级 : IP44 (正方向-直立设置时)。

    可莱特S100RLR LED 反射镜 旋转 警示灯产品目录.pdf

    可莱特S100RLR LED 反射镜 旋转 警示灯产品目录pdf,特点:采用大功率发光二极管为光源,发光二极管的使用寿命为半永久性;...材质 : 灯罩-AS, 底座-ABS, 反射镜-耐热性 ABS;保护等级 : IP44。

    nexuslib-as3:一个Actionscript库,提供强大的反射,序列化,种子随机数生成,加密,联网等功能

    由于AS3不提供本机枚举结构,因此您可以使用它来建立一个枚举结构: public class MyEnum extends Enum { public static const Enum1 : MyEnum = new MyEnum() ; public static const Enum2 : MyEnum = new ...

    用CEAS方法精确测量10m波段高反射镜的反射率 (2004年)

    介绍了用CEAS技术高精度地检测高反射镜反射率的实验方法。利用直型衰荡光腔与CEAS技术结合,装置简单,测量精度高。首次应用这一方法对10m波段高反镜的反射率进行了测量。实验结果表明,不仅测量可在实际工作气氛下进行...

    CISCO BGP 联邦和反射

    CISCO BGP 联邦和反射 实验目的: 1通过反射器解决IBGP建立过多邻居的问题 2 通过AS联邦实现IBGP邻居过多的问题

    保障IBGP路由传递的利器——路由反射器RR.doc

    在一个大型的AS当中受IBGP水平分割(从IBGP邻居学到的路由不再发送给其他的IBGP邻居)的影响,会导致IBGP邻居之间的BGP路由无法完全传递。

    Unity反射折射Refractive Shader 1.2材质shader着色器插件

    淘宝花RMB买的·····Refractive Shader 1.2 最新版本,请勿用于商业用途,仅供学习参考! ... his shader emulates light refraction ...- 3 Shaders with different GPU footprints - Demo Scene with some textures

    As

    为了在As2S8薄膜中制备条形波导,实验研究了As2S8薄膜光致折射率变化和密度变化的现象,采用棱镜耦合、X线衍射和远红外反射光谱等测试技术,确认了As2S8薄膜经紫外光辐照后薄膜密度增高、折射率增大的现象。采用可见光...

    可莱特S180U 灯泡 反射镜 旋转 警示灯产品目录.pdf

    可莱特S180U 灯泡 反射镜 旋转 警示灯产品目录pdf,特点:采用噪音和磨损极小的动力传达装置;内装可以调节速度的转钮, 转速 : 120~140RPM;...材质 : 灯罩-AS, 底座-ABS, 反射镜-PC;保护等级 : IP44。

    yagrc:另一个(Python)gRPC反射客户端

    另一个gRPC反射客户端 用于Python的极简反射客户端。 可以通过在其proto文件中定义的名称来获取反射的grpc类型... insecure_channel ( target ) as channel : stub = subtract_pb2_grpc . SubtractionStub ( channel )

    可莱特S80LR LED 反射镜 旋转 警示灯产品目录.pdf

    可莱特S80LR LED 反射镜 旋转 警示灯产品目录pdf,特点:采用噪音和磨损极小的动力传达装置;采用大功率发光二极管为光源,发光二极管的使用...材质 : 灯罩-AS, 身体-ABS, 反射镜-耐热性 ABS;保护等级 : IP44。

Global site tag (gtag.js) - Google Analytics