Actionscript 3 自定義 matedata

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

注意是+=

若是寫成=就會覆蓋不少原生自帶的元數據標籤,從而致使出問題

相關文章
相關標籤/搜索