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/