Apache flex 如何定义自定义';内容组';在自定义Flex4组件中?

Apache flex 如何定义自定义';内容组';在自定义Flex4组件中?,apache-flex,flex4,custom-component,flex-skins,Apache Flex,Flex4,Custom Component,Flex Skins,例如,火花盘组件可以这样编写 <Panel title="Skinny"> <child components ... /> <controlBarGroup> <child control bar components ... /> </controlBarGroup> </Panel> <MyComp> <headerGroup> <child componen

例如,火花盘组件可以这样编写

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

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

它的皮肤文件将处理contentGroup、controlBarGroup和titleDisplay的布局。 但是,请注意,contentGroup不会出现在上面的代码中,并且controlBarGroup接受子mxml组件

现在假设我想创建一个自定义组件,定义各种必需和非必需的SkinPart,例如“headerGroup”、“navigationGroup”和“accountPreferencesGroup”。我想这样写这个自定义组件

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

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

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


上面的描述有意义吗?如何在自定义Flex4组件中创建可以使用嵌套mxml子组件的自定义“内容组”?我应该用另一种方式来处理这个问题吗

所以。。。经过一段时间的努力。。。我发现通过添加以下内容可以使用mx_内部名称空间

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

Adobe使用此名称空间标记将来可能更改的方法和属性,以便使用此名称空间隐藏内容


如果您按照Panel.as中的代码进行操作,则可以完成此工作并定义自己的自定义内容区域

我最近偶然看到了这篇博文。我相信这对你所说的有很好的解释


我刚刚找到了下面的链接,它与我想要实现的目标非常接近。这是一个很好的解释。通过面板实现也有很大帮助。