2010-05-12 115 views
6

例如火花面板組件可以這樣寫如何在自定義Flex 4組件中定義自定義'contentGroups'?

<Panel title="Skinny"> 
    <child components ... /> 
    <controlBarGroup> 
    <child control bar components ... /> 
    </controlBarGroup> 

</Panel> 

而且其皮膚文件將處理contentGroup的,controlBarGroup和titleDisplay的佈局。 注意,contentGroup不會出現在上面的代碼中,並且controlBarGroup接受子mxml組件。

現在說我想創建一個自定義組件,它定義了各種必需的和不需要的外觀部件,例如'headerGroup','navigationGroup'和'accountPreferencesGroup'。我想寫這個自定義組件這樣

<MyComp> 
<headerGroup> 
    <child components .../> 
</headerGroup> 
<navigationGroup> 
    <child components .../> 
</navigationGroup> 
<accountPreferencesGroup> 
    <child components .../> 
</accountPreferencesGroup> 
</MyComp> 

這裏的動機是,我現在可以創建幾個不同的皮膚文件來改變這些分組的外觀和佈局。讀取spark面板的源代碼時,在mx_internal命名空間中有一些調用,例如getMXMLContent(),它是spark組件的一種方法,但我無法訪問它。

以上描述是否有意義?我如何在可以使用嵌套mxml子組件的自定義Flex4組件中創建自定義'contentGroups'?我應該以不同的方式來解決這個問題嗎後

+0

我剛剛發現了下面的鏈接,它非常接近我試圖實現的目標。 http://forums.adobe.com/thread/575569?tstart=1 – swidnikk 2010-05-12 21:26:56

回答

0

所以......通過多一點工作的事情......我發現,它可以通過添加以下

進口mx.core.mx_internal使用mx_internal命名空間; 使用命名空間mx_internal;

Adob​​e使用此命名空間來標記將來可能更改的方法和屬性,以便他們使用此命名空間來隱藏事物。

如果您遵循Panel.as中的代碼,您可以獲得此項工作並定義您自己的自定義內容區域。