metadata就是元數據編程
反應一個類本質的屬性框架
能夠經過describeType(obj)來獲得反應該對象的xmlflex
要自定義元數據,如[MyMatedata()]編碼
package { public class MyClass extends Object { [MyMatedata(name="ha",name2="haha2")] public var a:String; public function MyClass() { super(); } public function getA():void{ trace("dd"); } } }xml
describeType(new MyClass())返回:對象
<type name="MyClass" base="Object" isDynamic="false" isFinal="false" isStatic="false"> <extendsClass type="Object"/> <variable name="a" type="String"> <metadata name="MyMatedata">---------------------------------->自定義元數據 <arg key="name" value="ha"/> <arg key="name2" value="haha2"/> </metadata> <metadata name="__go_to_definition_help"> <arg key="pos" value="108"/> </metadata> </variable> <method name="getA" declaredBy="MyClass" returnType="void"> <metadata name="__go_to_definition_help"> <arg key="pos" value="189"/> </metadata> </method> <metadata name="__go_to_ctor_definition_help"> <arg key="pos" value="137"/> </metadata> <metadata name="__go_to_definition_help"> <arg key="pos" value="26"/> </metadata> </type>ip
這樣就能夠經過給類添加元數據從而進行編碼活動get
基於元數據的編程不少時候被忽視,可是使用元數據有時候會很方便,尤爲是在作AS3反射 和寫框架的時候it
describeType 實現actionscript語言的反射,這樣經過元數據能夠進行更多的編程io
在使用自定義元數據時,須要在flex sdk的編譯參數裏面添加
-keep-as3-metadata+=MyMetadata
注意是+=
若是寫成=就會覆蓋不少原生自帶的元數據標籤,從而致使出問題