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 

 

posted @ 2009-08-02 11:39  ddw1997  阅读(7352)  评论(0编辑  收藏  举报