AS3.0中获取对象的类

Object有一个constructor的动态属性可以返回对象的类,例如:

 1 package
 2 {
 3     import flash.display.Sprite;
 4     
 5     public class Main extends Sprite
 6     {
 7         public function Main()
 8         {
 9             var a:Object= new Sprite();
10             trace(a.constructor);
11             //返回[class Sprite]
12         }
13     }
14 }

 

但是有几点要注意

Proxy类会在调用constructor属性时抛出异常:

Error: Error #2088: Proxy 类不实现 getProperty。它必须由一个子类覆盖。
at Error$/throwError()
at flash.utils::Proxy/http://www.adobe.com/2006/actionscript/flash/proxy::getProperty()

XML,XMLList在调用时返回空;int,uint调用constructor时会返回Number;Vector调用时会返回vector.<*>,例如

 1 package
 2 {
 3     import flash.display.MovieClip;
 4     import flash.display.Sprite;
 5     
 6     public class Main extends Sprite
 7     {
 8         public function Main()
 9         {
10             var a:Object= new Vector.<MovieClip>();
11             trace(a.constructor);
12             //返回 [class Vector.<*>]
13         }
14     }
15 }

在写框架用到反射机制时这个还是比较有用的一个属性。

 

转自:http://sswilliam.blog.163.com/blog/static/18969638320116311531950/

posted @ 2012-08-04 11:05  Matrix.42  阅读(1058)  评论(0编辑  收藏  举报