如何在自定义Flex 4组件中定义自定义“contentGroups”?

时间:2010-05-12 21:21:19

标签: flex flex4 custom-component flex-skins

例如,火花面板组件可以像这样写出

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

</Panel>

它的外观文件将处理contentGroup,controlBarGroup和titleDisplay的布局。 请注意,但是contentGroup没有出现在上面的代码中,并且controlBarGroup接受子mxml组件。

现在说我想创建一个定义各种必需和非必需skinpart的自定义组件,例如'headerGroup','navigationGroup'和'accountPreferencesGroup'。我想像这样编写这个自定义组件

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

这里的动机是我现在可以创建几个不同的皮肤文件来改变这些子组的外观和布局。读取spark面板的源代码,mx_internal命名空间中有一些调用,例如getMXMLContent(),它是spark组件的一个方法,但是我无法访问它。

上述说明是否有意义?如何在我的自定义Flex4组件中创建可以使用嵌套的mxml子组件的自定义“contentGroups”?我应该采用不同的方式吗?

2 个答案:

答案 0 :(得分:6)

我最近浏览了这篇博文。我相信它会很好地解释你所说的话。

http://saturnboy.com/2010/07/multiple-content-area-containers/

答案 1 :(得分:0)

所以...经过一些工作之后......我发现通过添加以下内容可以使用mx_internal命名空间

import mx.core.mx_internal; 使用命名空间mx_internal;

Adob​​e使用此命名空间来标记将来可能会更改的方法和属性,以便他们使用此命名空间来隐藏内容。

如果您按照Panel.as中的代码操作,您可以开展此工作并定义您自己的自定义内容区域。