0

我读过很多文章说为了在 Flex 4 中使用旧的“Layout='Absolute'”,我只需要使用

<s:layout>
    <s:BasicLayout/>
</s:layout>

但它只是不以同样的方式工作。在 Flex 3 上,当您将应用程序布局设置为绝对布局时,X 和 Y 属性会自动失去其实用性,因为默认情况下,布局的每个组件都会在屏幕左上角自动确定。它的工作原理与移动布局类似:您可以使用 Canvas 设置 X 和 Y(移动游戏开发人员最常用),或者让设备放置所有内容,以避免屏幕尺寸问题等。

Flex 4 上还可以吗?它有多难/复杂?感谢您的关注。

编辑 - - - -

所以这似乎有点混淆我想要的东西。回到 Flex e,我曾经这样做:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onInit()" width="100%" height="100%"

我用这个标签开始我的应用程序,在那里我会有一个 100% 宽度和 100% 高度的盒子容器。所以,在这个盒子容器中,我将有 HBox 和 VBox 来对齐我的组件(现在是 VGroup 和 HGroup)。问题是,在 Flex 3 中,例如,我可以放置 1 个 VBox,并在其中放置 3 个 HBox,每个 HBox 将自动假设一个位置在另一个之下,即 X 和 Y 属性为空白。使用 Flex 4,当我在其中放置 1 个 VGroup 和 3 个 HGroup 而不设置任何 X 和 Y 属性时,它们只会在另一个之上填充一个,就像我将 X,Y = 0 设置为所有它们一样。他们不再像以前那样把一个位置放在另一个位置。

4

1 回答 1

0

请参阅Spark Layouts with Flex 4中的 Flex 3 到 Flex 4 等效布局:

使用 Spark 布局

因为在 Spark 中布局和容器是分开的,所以在使用布局时需要考虑一些值得注意的变化。花点时间查看下表 MX 布局容器类及其对应的 Spark 布局和容器组合:

MX Containers Corresponding combination of Spark Layout and Container
Canvas        Group with BasicLayout (no advanced constraints)
HBox          Group with HorizontalLayout (or the HGroup class)
VBox          Group with VerticalLayout (or the VGroup class)
Tile          Group with TileLayout
List          List with VerticalLayout
TileList      List with TileLayout

在您的情况下,听起来您想要动态布局而不是绝对布局,因为您说您不想为控件提供 X 和 Y 坐标。

然后你有两个选择:

  • 使用 BasicLayout 并为控件指定 top、left、right、bottom 属性
  • 使用 Horizo​​ntalLayout、VerticalLayout 或其他动态布局之一。
于 2012-09-07T17:35:50.327 回答