`
pangxin12345
  • 浏览: 189234 次
  • 性别: 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反射的问题

    在ActionScript 3 (AS3)中,反射是一种强大的编程技术,它允许程序在运行时检查自身的行为和结构。这包括获取类的信息、实例化对象、调用方法、访问属性等,即使这些信息在编译时是未知的。反射机制在处理动态语言...

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

    在ActionScript 3 (AS3)中,反射是一种强大的编程技术,它允许程序在运行时检查自身和其他类的结构和行为。AS3反射API提供了一种方式,让我们可以在程序执行过程中动态地获取类的信息,包括类的属性、方法、变量等。...

    As2Commons反射

    As2Commons通过`org.as3commons.reflect`包提供了一系列的反射API,下面我们来详细介绍其中几个重要的类和接口: 1. **`Type`**:代表一个类或接口的信息,包含了很多方法用于获取该类型的各种信息,如字段、构造...

    3D立体展示图片-附as3源码

    标题中的“3D立体展示图片-附as3源码”表明这是一个使用ActionScript 3.0(AS3)编程语言创建的项目,旨在实现3D立体图像的展示。ActionScript是Adobe Flash Platform的一部分,主要用于开发富互联网应用程序(RIA)...

    flash as3 3d立体墙

    在Flash AS3中,3D立体墙是一种交互式的可视化技术,它允许用户以三维的方式浏览和操作元素,比如图片、视频或图标。这种技术在网页设计、游戏开发以及数据展示等领域有着广泛的应用。以下是关于“Flash AS3 3D立体...

    AS3逼真水波

    在本文中,我们将深入探讨如何使用ActionScript 3(AS3)来创建逼真的水波效果,这是一种在交互式媒体项目中广泛应用的技术,特别是在鼠标交互、展馆地面展示和其他视觉艺术表现中。ActionScript 3是Adobe Flash ...

    flash/as3 3D 版 SNS社交游戏源码

    本主题聚焦于一个基于Flash平台,使用ActionScript 3(AS3)编写的3D SNS(社交网络服务)游戏源码。下面将详细讨论这个项目中涉及的关键技术点。 首先,"A*寻路算法"是游戏中角色或AI自动导航的基础。A*算法是一种...

    as3 光线追踪渲染

    在AS3(ActionScript 3)中实现光线追踪渲染是一项技术挑战,因为AS3主要用于开发Flash内容,而它并非专为高性能计算设计。尽管如此,通过巧妙的算法优化,可以在AS3中实现光线追踪。 光线追踪的基本原理是模拟光线...

    flash as3 pv3d实现的魔方效果源文件

    在本文中,我们将深入探讨如何使用ActionScript 3(AS3)和 Papervision3D(PV3D)库在Flash环境中实现一个交互式的魔方效果。首先,我们需要理解AS3是Adobe Flash Professional和Flex Builder等开发工具的主要编程...

    FLASH 3D库ASGL

    在Flash Player的支持下,ASGL使得开发者能够利用ActionScript 3(AS3)编程语言构建复杂的3D应用,如游戏、模拟器、数据可视化工具等。 在ASGL中,核心概念包括场景(Scene)、相机(Camera)、光源(Light)、...

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

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

    flash反射实例

    3. **方法调用**:反射允许你在运行时动态调用对象的方法,包括私有方法和静态方法。这对于实现元编程或者插件系统等高级功能是必不可少的。 4. **类型检查**:你可以检查一个对象是否属于特定的类或接口,这在动态...

    java类转换为AS3的工具以及一些注意事项

    - **反射与动态类型**:Java 的反射在 AS3 中较弱,转换时可能需要避免或重构涉及反射的部分。 4. **源码与工具的配合** 转换过程中,你可能会遇到源码中的一些特殊结构或库依赖,这时需要对 Java 和 AS3 两者的...

    bgp路由反射器实验解析

    3. 在RC上配置BGP AS 200、OSPF和Loopback0接口,地址为3.3.3.3/24。 4. 在RD上配置BGP AS 200和Loopback0接口,地址为4.4.4.4/24。 5. 在各个路由器之间建立EBGP和IBGP邻接关系。 6. 使用sh ip bgp命令来验证路由...

    pv3d开发工具as3 编写的

    在标题和描述中,"pv3d开发工具as3 编写"表明这是一个使用AS3开发的PV3D工具集或框架,可能是为了简化和加速3D内容的创建。这样的工具可能包括类库、示例代码、调试工具、编辑器插件等,旨在帮助开发者更好地理解和...

    Visual Basic.net 反射参考手册

    在.NET框架中,反射是一个强大的工具,它允许程序在运行时检查自身和其他程序集的元数据,从而实现动态类型操作、实例化对象、调用方法、访问字段等。本参考手册将深入探讨如何在Visual Basic .NET中有效地利用反射...

    VB.NET 反射 示例Demo(项目用)

    3. 序列化/反序列化:在保存和恢复对象状态时,反射可以用来读写对象的私有字段。 4. 插件架构:通过反射加载和调用插件中的类和方法,实现可扩展性。 这个“VB.NET 反射 示例Demo(项目用)”可能包含了上述概念的...

    pv3d as3第三方类库

    **PV3D AS3 第三方类库** PV3D(Papervision3D)是ActionScript 3(AS3)平台上的一个开源三维(3D)图形引擎,它为Flash开发者提供了在Web上创建复杂3D场景的能力。PV3D的出现极大地扩展了Flash的视觉表现力,使得...

    VB.NET 反射类属性名称

    3. 获取属性值:一旦找到属性,可以使用PropertyInfo对象的`GetValue()`方法获取属性的当前值。 ```vbnet Dim propertyValue As Object = myProperty.GetValue(myInstance) ``` 4. 设置属性值:如果属性是可写的,...

    IOS_反射机制的实例

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

Global site tag (gtag.js) - Google Analytics