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反射和将XML转换成对象的类 可以反射出属性,方法
學習Java的人,知道java中反射的强大,使用Flex是學習他的反射机制,发现有开源组件As2Commons实现flex的反射机制.
说明:这个是用来实现已在场景中的Mc复制多个出来,如AS2中可以duplicateMovieClip,AS3中用是用New和addChild的, 有人会说As3可以用 方法1——反射方法: var ClassRef:Class = getDefinitionByName...
由本群【天空air_as3_北京】分享的关于反射理论的Demo 可以帮助理解反射的用法和原理
//3 定义要反射类的完全限定名称 string fullName = "myIIS.Pages." + preStr; //4 反射创建 index类的对象 IHttpHandler handler = this.GetType().Assembly.CreateInstance(fullName) as IHttpHandler; //4....
flash AS3.0反射机制实例,自己写的,有讲解!有兴趣的可以下载看看
Router A、Router B、Router C为AS 100,其中Rotuer B为路由反射器(RR)。
可莱特SKMLRLED反射镜旋转警示灯产品目录pdf,特点:利用底部4个强力磁铁,吸附在车辆接触面的结构;采用大功率发光二极管为光源,发光二极管...材质 : 灯罩-AS, 底座-PC, 反射镜-耐热性 ABS;保护等级 : IP54。
可莱特S125PT充电便携式灯泡反射镜旋转警示灯产品目录pdf,特点:灯泡反射镜旋转型;...材质 : 灯罩-AS, 底座-ABS, 反射镜-耐热性 ABS, 电池外壳-STEEL;保护等级 : IP44 (正方向-直立设置时)。
可莱特S100RLR LED 反射镜 旋转 警示灯产品目录pdf,特点:采用大功率发光二极管为光源,发光二极管的使用寿命为半永久性;...材质 : 灯罩-AS, 底座-ABS, 反射镜-耐热性 ABS;保护等级 : IP44。
由于AS3不提供本机枚举结构,因此您可以使用它来建立一个枚举结构: public class MyEnum extends Enum { public static const Enum1 : MyEnum = new MyEnum() ; public static const Enum2 : MyEnum = new ...
介绍了用CEAS技术高精度地检测高反射镜反射率的实验方法。利用直型衰荡光腔与CEAS技术结合,装置简单,测量精度高。首次应用这一方法对10m波段高反镜的反射率进行了测量。实验结果表明,不仅测量可在实际工作气氛下进行...
CISCO BGP 联邦和反射 实验目的: 1通过反射器解决IBGP建立过多邻居的问题 2 通过AS联邦实现IBGP邻居过多的问题
在一个大型的AS当中受IBGP水平分割(从IBGP邻居学到的路由不再发送给其他的IBGP邻居)的影响,会导致IBGP邻居之间的BGP路由无法完全传递。
淘宝花RMB买的·····Refractive Shader 1.2 最新版本,请勿用于商业用途,仅供学习参考! ... his shader emulates light refraction ...- 3 Shaders with different GPU footprints - Demo Scene with some textures
为了在As2S8薄膜中制备条形波导,实验研究了As2S8薄膜光致折射率变化和密度变化的现象,采用棱镜耦合、X线衍射和远红外反射光谱等测试技术,确认了As2S8薄膜经紫外光辐照后薄膜密度增高、折射率增大的现象。采用可见光...
可莱特S180U 灯泡 反射镜 旋转 警示灯产品目录pdf,特点:采用噪音和磨损极小的动力传达装置;内装可以调节速度的转钮, 转速 : 120~140RPM;...材质 : 灯罩-AS, 底座-ABS, 反射镜-PC;保护等级 : IP44。
另一个gRPC反射客户端 用于Python的极简反射客户端。 可以通过在其proto文件中定义的名称来获取反射的grpc类型... insecure_channel ( target ) as channel : stub = subtract_pb2_grpc . SubtractionStub ( channel )
可莱特S80LR LED 反射镜 旋转 警示灯产品目录pdf,特点:采用噪音和磨损极小的动力传达装置;采用大功率发光二极管为光源,发光二极管的使用...材质 : 灯罩-AS, 身体-ABS, 反射镜-耐热性 ABS;保护等级 : IP44。