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

发布于 2024-09-01 08:02:15 字数 1009 浏览 8 评论 0原文

例如,spark panel 组件可以这样编写

<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 组组件的一个方法,但我无权访问。

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

The spark panel component for example can be written like this

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

</Panel>

And its skin file will handle layout of the contentGroup, controlBarGroup, and titleDisplay.
Notice, however that the contentGroup is doesn't appear in the code above and that the controlBarGroup accepts child mxml components.

Now say I want to create a custom component that defines various required and non-required skinparts, such as 'headerGroup', 'navigationGroup', and 'accountPreferencesGroup'. I'd like to write this custom component like this

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

The motivation here is that I can now create a couple different skin files to change the look and layout of those subgroups. Reading source of the spark panel, there are some calls within the mx_internal namespace such as getMXMLContent() which is a method of the spark group component, but which I have no access to.

Does the description above make sense? How can I create custom 'contentGroups' in my custom Flex4 component that can use nested mxml child components? Should I approach this a different way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱,才寂寞 2024-09-08 08:02:15

我最近看到了这篇博文。我相信它对你所说的内容给出了很好的解释。

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

I ran across this blog post recently. It gives a pretty good explanation of what you speak of, I believe.

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

感情洁癖 2024-09-08 08:02:15

所以...经过更多工作后...我发现可以通过添加以下

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

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

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

So... after working things through a bit more... I found that it its possible to use mx_internal namespace by adding the following

import mx.core.mx_internal;
use namespace mx_internal;

Adobe uses this namespace to mark methods and properties that may change in the future so they use this namespace to hide things.

If you follow the code in Panel.as you can get this work and define your own custom content areas.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文