2016-12-01 92 views
1

我想在ActionScript中获得一个类的DefaultProperty元数据,但我无法在元数据XML中找到任何提及的DefaultProperty。有没有办法在运行时获取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。默认属性为“内容”:

[DefaultProperty("content")] 

它似乎没有在元数据中显示任何内容。

在编译器选项我已经包括编译参数:

-keep-as3-metadata+=DefaultProperty 
+0

我正在为Richtext获取defaultProperty元数据元。 mxmlContentFactory是SkinNableContainer的DefaultProperty,它在生成的SkinnableContainer的xml中显示它,但不显示为BorderContainer – Sumit

+0

是的。有时他们是在超级班上宣布的。我必须走父母班,并检查每一个找到它。 –

回答

0

它不设置上的一些类,但如果它被定义它将在父类中定义。

我检查,但使用BorderContainer它是一个SkinnableContainer定义:

<metadata name="DefaultProperty"> 
    <arg key="" value="mxmlContentFactory"/> 
</metadata> 

我已经发布的作品时,它的主类中定义的代码。如果一个类没有默认属性,我会得到所有超类的列表,并检查每一个,直到我得到对象或UIComponent。

相关问题