`
lp895876294
  • 浏览: 285413 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex反射工具类

 
阅读更多

原文->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开发中的类反射技术详解 #### 引言 随着Flex技术在富互联网应用(RIA)领域的广泛应用,其独特的能力,如强大的图形处理能力和高效的数据处理机制,使其成为开发高性能Web应用的首选工具之一。Flex的灵活...

    Flex开源项目

    8. **ReflexUtil**: 一个反射组件类,可用于动态操作和检查Flex对象。 9. **flex-object-handles**: 提供对象处理功能,通过XML配置实现对象的操作,但可能需要根据具体需求进行定制。 10. **CheckboxTree 和 ...

    Flex 逼真海洋效果

    Flex是一款由Adobe公司开发的开源框架,主要用于构建富互联网应用程序(RIA)。在Flex中实现逼真的海洋效果是一项挑战,但通过巧妙的...不断试验和学习,你会发现Flex提供的工具和API足以实现许多富有创意的视觉特效。

    Flex 和 java 整合 教程

    4. **Spring**:SpringFactory类和反射机制,用于管理和实例化后端服务。 5. **业务层**:基于Spring框架,使用Hibernate处理数据库操作,实现业务逻辑。 6. **Flex Application, Module, Component**:Flex前端应用...

    ActionScript教程 Flex教程 ActionScript+Flex教程

    - **Flex SDK**:包含编译器、调试器和其他工具,帮助开发者构建和测试Flex应用。 #### 三、ActionScript 3.0教程 - **基础概念**:包括变量、数据类型、运算符、控制结构等。 - **面向对象编程**:类的定义、对象...

    Flex_for_PHP_developers.pdf

    调试Flex应用程序可以使用Adobe Flash Player的调试模式或专用的调试工具。通过设置断点、查看变量值和跟踪调用堆栈,开发者可以定位和修复问题,确保应用程序的正确性和稳定性。 #### Adobe AIR简介 Adobe AIR...

    Flex特效示例

    Flex是一款强大的开发工具,用于构建富互联网应用程序(RIA),它提供了丰富的组件库和强大的图形处理能力,使得开发者能够创建出具有高度交互性和动态效果的应用。 1. **SpotlightDemo**: 这个例子可能涉及到聚光...

    专题资料(2021-2022年)Flex开源项目.docx

    8. **反射组件类reflexutil**: 为Flex开发提供反射功能的工具,可以帮助开发者在运行时检查和操作对象。 9. **flex-object-handles**: 一个对象处理组件,通过XML配置实现对Flex对象的操作。其功能强大,但可能需要...

    专题资料(2021-2022年)flex开源项目介绍.doc

    8. **ReflexUtil**:反射组件类,帮助开发者在Flex应用中进行对象操作,通过其提供的工具可以更方便地管理和操作程序中的对象。 9. **flex-object-handles**:这个组件提供了一种图形化方式来处理对象,功能强大,...

    As2Commons反射

    As2Commons是一个基于ActionScript 3.0的开源库,提供了丰富的工具和实用程序,其中包括了对反射的支持。它为开发者提供了一系列API,用于处理类和对象的信息,从而使得开发者能够在运行时动态地访问和修改类的行为...

    flex/flash 3d基础1

    Adobe Flex和Flash作为强大的富互联网应用程序(RIA)开发工具,自然也支持了3D功能。本文将通过"flex/flash 3D基础1"这一主题,深入探讨如何利用它们来创建3D效果,并以"Figure"为例,解析其中的关键知识点。 ...

    RE/flex lexical analyzer generator:以正则表达式为中心的快速词法分析器生成器,用于C ++-开源

    反射扫描仪生成器工具生成线程安全的干净的词法分析器类代码。 生成Graphviz文件以可视化状态机DFA。 RE / flex与Bison无缝配合。 语言:C ++许可证:BSD-3代码质量:A + ...

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

    在开发跨平台的应用程序时,有时我们需要将 Java 类转换为 AS3,以便在 Adobe Flash 或 Flex 平台上使用。这种转换通常是为了利用 Java 的强大功能和 AS3 的交互性。本文将介绍一个名为 J2AS3 的工具,它可以帮助...

    用于flash中的PV3D 组件包

    开发者可以通过导入这些类,然后在Flex应用中创建3D对象和场景。 以下是一些关键知识点: 1. **Scene3D**:这是PV3D中的核心类,代表了3D空间。开发者可以在这个空间中添加相机、光源和3D对象。 2. **Camera3D**...

    spring actionscript 必须的.swc包

    4. **as3commons-lang.swc**:这是AS3 Commons库的一部分,提供了一些ActionScript 3标准库中没有的实用工具类,包括字符串处理、集合操作、反射等功能,增强了ActionScript的实用性。 5. **as3commons-reflect.swc...

    Java就业课全套课程+经验分享免费奉送.docx

    - **多线程编程**:理解线程的基本概念,学会使用Thread类和Runnable接口创建线程,并熟悉synchronized关键字、volatile变量以及并发工具类如ExecutorService的使用。 - **反射机制**:了解反射的原理及应用场景,...

    Android调用AMF

    - 为AMF通信编写可复用的工具类或库,提高代码复用性和可维护性。 通过以上步骤,你可以在Android应用中实现与使用AMF协议的服务器的交互,无论是解析接收到的AMF数据还是构造并发送AMF请求,都可以游刃有余。不过...

    Papervision3D_API

    - **Material**:定义物体表面的外观,包括颜色、纹理和反射等特性。 - **Renderer**:负责渲染场景,将3D对象转化为2D图像显示在屏幕上。 - **Matrix3D**:用于处理3D变换,包括平移、旋转和缩放。 3. **3D建模...

Global site tag (gtag.js) - Google Analytics