0

我在 flex mobile 中为我的视图添加了背景。

我刚刚意识到,如果我不包括该行:

<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0"/>

只显示我的图像,我无法显示其他任何内容。非常奇怪的是我用过:

new-mxml 皮肤和宿主组件:spark.components.View

并且向导没有添加这一关键行(我在样本上发现了这一点):

<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0"/>

1)这是一个错误吗?还是有另一种更简单的方法?

2)为了避免像这样的其他错误,是否有一些好的做法来给其他组件换肤?(使用催化剂?使用烟花?)

问候

4

1 回答 1

1

那是一个错误吗?还是有另一种更简单的方法?

不,这不是错误。类的皮肤View具有名为 的“皮肤部件” contentGroup,这是View组件用来显示其子组件的对象。没有这个皮肤部分,你的视图就没有容器来容纳子组件。

每个具有皮肤的组件都定义了一组“皮肤部件”。有些皮肤部分是必需的,有些则不需要。

奇怪的是,contentGroup皮肤部分不是必需的,尽管排除它是没有用的。

为了避免像这样的其他错误,是否有一些好的做法可以为其他组件蒙皮?

最佳实践是查看文档以了解组件声明的皮肤部件。例如,这里是组件文档的“皮肤部件”部分的链接View。在文档中每个页面的右上角,都有一个“皮肤部件”链接可以跳转到页面的这一部分。

当您使用向导创建 MXML 皮肤时,您可以选择从 Flex 定义的现有皮肤之一复制代码。如果你这样做,你会得到一些包含所有皮肤部分的代码和一堆 Adob​​e 样式代码。

如果不复制原始皮肤,则会得到一个空的 MXML 皮肤。但是,该向导将在代码中创建一个注释,告诉您皮肤部件是什么,以及它们是否需要。以下是您在创建空View皮肤时得到的评论:

<!-- SkinParts
name=contentGroup, type=spark.components.Group, required=false
-->

您可以使用其他工具,例如 Catalyst,但它们不是必需的(我相信 Catalyst 无论如何都已停产)。有时我会先用 Adob​​e 的默认代码创建皮肤,然后去掉我不想要的东西。其他时候有很多“混乱”,我只是使用空白皮肤。

于 2013-06-10T18:49:27.510 回答