6

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

<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>

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

上面的描述有意义吗?如何在可以使用嵌套 mxml 子组件的自定义 Flex4 组件中创建自定义“contentGroups”?我应该以不同的方式解决这个问题吗?

4

2 回答 2

6

我最近看到了这篇博文。我相信它很好地解释了你所说的。

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

于 2010-07-16T02:31:41.203 回答
0

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

导入 mx.core.mx_internal;使用命名空间 mx_internal;

Adobe 使用此命名空间来标记将来可能更改的方法和属性,因此他们使用此命名空间来隐藏内容。

如果您遵循 Panel.as 中的代码,您可以完成这项工作并定义您自己的自定义内容区域。

于 2010-05-12T21:55:26.070 回答