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
注意是+=
若是写成=就会覆盖不少原生自带的元数据标签,从而致使出问题