• AS3动态获得类名及类的方法


    1.获得某个实例对象的类名:getQualifiedClassName (实例名字符串表达式);

    1 stage.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandle);
    2 function mouseOverHandle(e:Event):void {
    3     trace("over");
    4     //   返回instance**之类的        
    5     trace(e.target.name);
    6     //返回元件名   
    7     trace(getQualifiedClassName(e.target));
    8 }

    2.获得某个实例对象的类:constructor

    1 dynamic class A {}
    2 trace(A.prototype.constructor);      // [class A]
    3 trace(A.prototype.constructor == A); // true
    4 var myA:A = new A();
    5 trace(myA.constructor == A);         // true

    3.根据类名获得类: getDefinitionByName(类名);

     1 package {
     2     import flash.display.DisplayObject;
     3     import flash.display.Sprite;
     4     import flash.utils.getDefinitionByName;
     5 
     6     public class GetDefinitionByNameExample extends Sprite {
     7         private var bgColor:uint = 0xFFCC00;
     8         private var size:uint = 80;
     9 
    10         public function GetDefinitionByNameExample() {
    11             var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
    12             var instance:Object = new ClassReference();
    13             instance.graphics.beginFill(bgColor);
    14             instance.graphics.drawRect(00, size, size);
    15             instance.graphics.endFill();
    16             addChild(DisplayObject(instance));
    17         }
    18     }
    19 }

    4.用得到的类实例化对象:一般中间要用一个无类型变量传递类,进行实例化;如:

    1 var i=0
    2 var c:*=getDefinitionByName(getQualifiedClassName ("MyClass"+i)); 
    3 var myClass:*=new c();
    4 
  • 相关阅读:
    2019hdu多校1
    codefroce842C
    [codeforce686D]树的重心
    [codeforce1188C&D]
    Educational Codeforces Round 66
    [hdu4343]interval query
    Luogu 4234 最小差值生成树
    BZOJ 2594 水管局长
    Luogu 2173 [ZJOI2012]网络
    Luogu 2147 洞穴勘测
  • 原文地址:https://www.cnblogs.com/ddw1997/p/1536851.html
Copyright © 2020-2023  润新知