zoukankan      html  css  js  c++  java
  • AS3获取对象类名,getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName

    首先先告诉大家,我要讲的是flash.utils包中的
    getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
    可能帮助文档写的过于专业,程序底子差的不一定能看明白,我用我理解的,通俗的讲一遍给大家听。。

    1、getDefinitionByName
    如果你已知这个类的类名类路径,但是你又没办法得到这个类的原型,那么可以通过该函数,将已知的类名类路径转换为类的原型,然后还可以将得到的类原型进行实例化,比如:

    var Tmp = getDefinitionByName("flash.display.Sprite");
    var spr = new Tmp;
    trace(spr is Sprite);
    //输出 true
    

    通过getDefinitionByName得来的其实就是Sprite类,然后实例化,再判断spr是否为Sprite,得出的结果是true

    2、getQualifiedClassName
    如果你现在有个引用值,你不知道这个引用所表示的什么类,什么类路径,或许是个类不知道类名等等,想得到这个类的完整名字,那么可以使用它,比如:

    var spr:Sprite = new Sprite;
    trace(getQualifiedClassName(spr));
    trace(getQualifiedClassName(Sprite));
    //两者都是输出 flash.display::Sprite
    

    3、getQualifiedSuperclassName

    这个方法就比较好玩了,是获取自己父类的类原型,比如你一系列的类是继承某个抽象类,而现在你无法得到这个抽象类,那么你可以使用该方法获得该抽象类的类原型,比如:

    var spr:Sprite = new Sprite;
    trace(getQualifiedSuperclassName(spr));
    trace(getQualifiedSuperclassName(Sprite));
    //两者都是输出 flash.display::DisplayObjectContainer
    

    其实这个三方法在日常编程很少用得到,但是了解一下并无害,而且这个三个方法,也经常出现在各大公司的面试题上,因为这几个用处不大,但是可以了解你对AS3的熟悉程度到了哪儿。
    举一反三,竟然可以获得他的父类,那么抽象类的父类也可以获得拉?

    请看:
    var tmp = Sprite;
    while(tmp != Object){
            tmp = getDefinitionByName(getQualifiedSuperclassName(tmp));
            trace(getQualifiedClassName(tmp));
    }
    /**
    * 输出:
    * flash.display::DisplayObjectContainer
    * flash.display::InteractiveObject
    * flash.display::DisplayObject
    * flash.events::EventDispatcher
    * Object
    */
    

    刨根揭底,把Sprite的长辈都挖出来了,不管父亲还是爷爷,或者爷爷的爷爷。。。
    有意思吧?了解了解吧。。实质作用没多大,全当小说看吧

  • 相关阅读:
    js停止(阻止)浏览器继续加载内容
    网页重构中区分IE6、IE7、IE8及标准浏览器的最佳方法
    MySQL学习笔记
    android asmack 注册 登陆 聊天 多人聊天室 文件传输
    解决系统改变字体大小的时候导致的界面布局混乱的问题
    Android UmengShareSDK第三方登录
    Android 设计模式
    Android HTTP session && cookie
    Android之使用HTTP协议的Get/Post方式向服务器提交数据
    Android之Activity的几种跳转方式
  • 原文地址:https://www.cnblogs.com/dt1991/p/7743912.html
Copyright © 2011-2022 走看看