原文->http://blog.csdn.net/arjick/article/details/6278116
基于Flex的反射工具类,在平常用的比较少,但是在使用反射机制填充AS对象属性等时候还是很有用的。
package com.shine.framework.core.util { import flash.utils.describeType; import flash.utils.getDefinitionByName; import flash.utils.getQualifiedClassName; import flash.utils.getQualifiedSuperclassName; import mx.utils.NameUtil; import mx.collections.ArrayCollection; import mx.controls.Alert; public class ReferenceUtil { public function ReferenceUtil() { } /** * 获取class的object package::className * */ public static function referenceClass(className:String):Object{ var ClassReference:Class = getDefinitionByName(className) as Class; var instance:Object = new ClassReference(); return instance; } /** * 获取class的value * */ public static function referenceClassParameters(className:String,parameters:String):*{ return referenceClass(className)[parameters]; } /** * 执行方法 * */ public static function referenceClassFunction(className:String,functionName:String,... rest):*{ var instance:Object =referenceClass(className); return instance[functionName].apply(instance,rest); } /** * 执行方法 * */ public static function referenceObjectFunction(instance:Object,functionName:String,... rest):*{ return instance[functionName].apply(instance,rest); } /** * 获取class name全名 * */ public static function getClassFullName(value:Object):String{ return getQualifiedClassName(value); } /** * 获取class name * */ public static function getClassName(value:Object):String{ if(getQualifiedClassName(value).indexOf("::")!=-1) return getQualifiedClassName(value).substring(getQualifiedClassName(value).indexOf("::")+2); else return getClassFullName(value); } /** * 获取所有的function列表 * ps:只能获取去方法的名称,不可以获取protected and private * */ public static function getAllFunctionFromObject(instance:Object):ArrayCollection{ var functionArrayCollection:ArrayCollection=new ArrayCollection; var method:XMLList=describeType(instance).method; var num:int=method.length(); for(var i:int=0;i<num;i++){ var xml:XML=method[i]; functionArrayCollection.addItem(xml.@name); xml=null; } return functionArrayCollection; } } }
相关推荐
### Flex开发中的类反射技术详解 #### 引言 随着Flex技术在富互联网应用(RIA)领域的广泛应用,其独特的能力,如强大的图形处理能力和高效的数据处理机制,使其成为开发高性能Web应用的首选工具之一。Flex的灵活...
8. **ReflexUtil**: 一个反射组件类,可用于动态操作和检查Flex对象。 9. **flex-object-handles**: 提供对象处理功能,通过XML配置实现对象的操作,但可能需要根据具体需求进行定制。 10. **CheckboxTree 和 ...
Flex是一款由Adobe公司开发的开源框架,主要用于构建富互联网应用程序(RIA)。在Flex中实现逼真的海洋效果是一项挑战,但通过巧妙的...不断试验和学习,你会发现Flex提供的工具和API足以实现许多富有创意的视觉特效。
4. **Spring**:SpringFactory类和反射机制,用于管理和实例化后端服务。 5. **业务层**:基于Spring框架,使用Hibernate处理数据库操作,实现业务逻辑。 6. **Flex Application, Module, Component**:Flex前端应用...
- **Flex SDK**:包含编译器、调试器和其他工具,帮助开发者构建和测试Flex应用。 #### 三、ActionScript 3.0教程 - **基础概念**:包括变量、数据类型、运算符、控制结构等。 - **面向对象编程**:类的定义、对象...
调试Flex应用程序可以使用Adobe Flash Player的调试模式或专用的调试工具。通过设置断点、查看变量值和跟踪调用堆栈,开发者可以定位和修复问题,确保应用程序的正确性和稳定性。 #### Adobe AIR简介 Adobe AIR...
Flex是一款强大的开发工具,用于构建富互联网应用程序(RIA),它提供了丰富的组件库和强大的图形处理能力,使得开发者能够创建出具有高度交互性和动态效果的应用。 1. **SpotlightDemo**: 这个例子可能涉及到聚光...
8. **反射组件类reflexutil**: 为Flex开发提供反射功能的工具,可以帮助开发者在运行时检查和操作对象。 9. **flex-object-handles**: 一个对象处理组件,通过XML配置实现对Flex对象的操作。其功能强大,但可能需要...
8. **ReflexUtil**:反射组件类,帮助开发者在Flex应用中进行对象操作,通过其提供的工具可以更方便地管理和操作程序中的对象。 9. **flex-object-handles**:这个组件提供了一种图形化方式来处理对象,功能强大,...
As2Commons是一个基于ActionScript 3.0的开源库,提供了丰富的工具和实用程序,其中包括了对反射的支持。它为开发者提供了一系列API,用于处理类和对象的信息,从而使得开发者能够在运行时动态地访问和修改类的行为...
Adobe Flex和Flash作为强大的富互联网应用程序(RIA)开发工具,自然也支持了3D功能。本文将通过"flex/flash 3D基础1"这一主题,深入探讨如何利用它们来创建3D效果,并以"Figure"为例,解析其中的关键知识点。 ...
反射扫描仪生成器工具生成线程安全的干净的词法分析器类代码。 生成Graphviz文件以可视化状态机DFA。 RE / flex与Bison无缝配合。 语言:C ++许可证:BSD-3代码质量:A + ...
在开发跨平台的应用程序时,有时我们需要将 Java 类转换为 AS3,以便在 Adobe Flash 或 Flex 平台上使用。这种转换通常是为了利用 Java 的强大功能和 AS3 的交互性。本文将介绍一个名为 J2AS3 的工具,它可以帮助...
开发者可以通过导入这些类,然后在Flex应用中创建3D对象和场景。 以下是一些关键知识点: 1. **Scene3D**:这是PV3D中的核心类,代表了3D空间。开发者可以在这个空间中添加相机、光源和3D对象。 2. **Camera3D**...
4. **as3commons-lang.swc**:这是AS3 Commons库的一部分,提供了一些ActionScript 3标准库中没有的实用工具类,包括字符串处理、集合操作、反射等功能,增强了ActionScript的实用性。 5. **as3commons-reflect.swc...
- **多线程编程**:理解线程的基本概念,学会使用Thread类和Runnable接口创建线程,并熟悉synchronized关键字、volatile变量以及并发工具类如ExecutorService的使用。 - **反射机制**:了解反射的原理及应用场景,...
- 为AMF通信编写可复用的工具类或库,提高代码复用性和可维护性。 通过以上步骤,你可以在Android应用中实现与使用AMF协议的服务器的交互,无论是解析接收到的AMF数据还是构造并发送AMF请求,都可以游刃有余。不过...
- **Material**:定义物体表面的外观,包括颜色、纹理和反射等特性。 - **Renderer**:负责渲染场景,将3D对象转化为2D图像显示在屏幕上。 - **Matrix3D**:用于处理3D变换,包括平移、旋转和缩放。 3. **3D建模...