flex 反射整理

轉載自:http://fhuan123.iteye.com/blog/283717 

 

取類名: 傳進一個object,返回類的全名

var loader:URLLoader = new URLLoader( );
var className:String = getQualifiedClassName(loader);
trace(className); // Displays flash.net.URLLoader
取父類的類名:傳進一個object,返回父類的類名
var loader:URLLoader = new URLLoader( );
var className:String = getQualifiedSuperclassName(loader);
trace(className); // Displays flash.events.EventDispatcher
根據類名取類
var classReference:Class = Class(getDefinitionByName(”flash.net.URLLoader”));
//一但你得到了類的引用後,就可以這樣
var instance:Object = new classReference( );
getQualifiedClassName( ) 或 getQualifiedSuperclassName( ) 與 getDefinitionByName() 結合使用的例子:
var loader:URLLoader = new URLLoader( );
var className:String = getQualifiedClassName(loader);
var classReference:Class = Class(getDefinitionByName(className));
var instance:Object = new classReference( );
Introspection:describeType( )返回對象的類型描述

 

需要注意一下就是在反射之前需要應用該類否則flex在編譯是是不添加該類的即使是反射出系統自有的類也不能生成對象,原因就是flex編譯時不適用不應用的道理

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章