2010-05-12 116 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中的代码,您可以获得此项工作并定义您自己的自定义内容区域。