Flash AS3/Flex中的自定义元数据?

Flash AS3/Flex中的自定义元数据?,flash,apache-flex,actionscript-3,actionscript,metadata,Flash,Apache Flex,Actionscript 3,Actionscript,Metadata,如何在ActionScript3/Flex中创建和使用自定义元数据?在Flex中处理ActionScript中的元数据有两个基本方向: 在运行时使用反射(或Adobe的内省)进行处理。您可以找到文档。有几个第三方库提供了更方便的反射API,如或 使用Flex编译器扩展,该扩展自Flex 4 SDK版本8165(请参阅)引入。另见和 要创建元数据,只需在类定义中使用方括号语法: [ClassAttr] public class ClassWithMetadata { [AttributeN

如何在ActionScript3/Flex中创建和使用自定义元数据?

在Flex中处理ActionScript中的元数据有两个基本方向:

  • 在运行时使用反射(或Adobe的内省)进行处理。您可以找到文档。有几个第三方库提供了更方便的反射API,如或
  • 使用Flex编译器扩展,该扩展自Flex 4 SDK版本8165(请参阅)引入。另见和

  • 要创建元数据,只需在类定义中使用方括号语法:

    [ClassAttr]
    public class ClassWithMetadata {
        [AttributeNoArgs]
        public var data:Object;
    
        [AttributeWithArgs(arg="value)]
        public var prop:Object;
    }
    
    调用
    describeType(ClassWithMetadata)
    获取类的xml描述。元数据将在那里,您可以对其进行解析并根据需要进行处理。

    要防止编译器剥离元数据,请为您使用的每个属性名称添加编译器参数
    -keep-as3-metadata Attribute
    。这可以在库设置中或在每个使用元数据的项目中完成。

    非常好的问答。有人能列举一些例子说明这是如何有用的吗?谢谢@bigp一些架构框架使用自定义元数据(例如欧芹、Swiz),这些自定义元数据在编译时是否也可以在Flash CS*IDE中工作?@bigp it-it-should。您可以像在其他IDE中一样处理类和对象,因此反射应该可以工作,例如感谢!如果我能接受不止一个答案……:)没问题,我很高兴它能帮上忙。这是Flex编译器(mxmlc)独有的,还是元数据也会保留在Flash Professional编译器中?