我正在尝试在ActionScript中获取类的DefaultProperty元数据,但我在元数据XML中找不到任何提及DefaultProperty的内容。
我正在使用以下代码:
var describedTypeRecord:DescribeTypeCacheRecord = mx.utils.DescribeTypeCache.describeType(BorderContainer);
var typeDescription:* = describedTypeRecord.typeDescription;
XML很长但是这里是它返回的第一个节点:
<type name="spark.components::BorderContainer" base="spark.components::SkinnableContainer" isDynamic="false" isFinal="false" isStatic="false">
BorderContainer或SkinnableContainer的默认属性是mxmlContentFactory
:
[DefaultProperty("mxmlContentFactory")]
我也尝试过RichText。默认属性为“content”:
[DefaultProperty("content")]
它似乎没有在元数据中显示任何内容。
在编译器选项中,我包含了编译器参数:
-keep-as3-metadata+=DefaultProperty
答案 0 :(得分:0)
它没有在某些类上设置,但如果定义了它,它将在超类上定义。
我正在检查BorderContainer,但它是在SkinnableContainer上定义的:
<metadata name="DefaultProperty">
<arg key="" value="mxmlContentFactory"/>
</metadata>
我发布的代码在主类上定义时起作用。如果一个类没有默认属性,我会获得所有超类的列表并检查每个超类,直到我得到对象或UIComponent。