2016-12-01 94 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。

相關問題