Flex中的绝对定位?

时间:2009-11-08 13:25:40

标签: flex

我需要以编程方式添加一组控件,它们之间有一些像素。我似乎无法在Flex文档中找到如何执行此操作。我该怎么办?

4 个答案:

答案 0 :(得分:2)

在具有绝对定位的容器内,例如画布,您可以使用x和y(或右,左,上,下)来定位元素

elem.x = 100;

elem.y = 200;

canvas.addChild(ELEM);

答案 1 :(得分:2)

大多数容器都有一些逻辑来为您放置物品,例如垂直或水平。即如果你想用5像素的空间水平放置它们,你可以使用HBox(VBox用于垂直布局):

<mx:HBox horizontalGap="5">
   <Component1/>
   <Component2/>
   <etc.../>
</mx:HBox>

或脚本:

...
var box: HBox = new HBox();
box.horizontalGap = 5;
box.addChild(new Component1());
box.addChild(new Component2());
addChild(box);

但是如果你想使用x,y坐标(即绝对定位)自己放置它们,你可以使用Canvas:

<mx:Canvas>
   <Component1 x="100" y="100"/>
   <Component2 x="100" y="200"/>
   <etc.../>
</mx:Canvas>

脚本版本:

var canvas: Canvas = new Canvas();
var component1: Component1 = new Component1();
component1.x = 100;
component1.y = 100;
canvas.addChild(component1);
var component2: Component2 = new Component2();
component2.x = 100;
component2.y = 100;
canvas.addChild(component2);

答案 2 :(得分:0)

您还可以使用Spacer在组件之间添加一些空间。

<mx:HBox>
   <Component1 />
   <mx:Spacer width="10" />
   <Component2 />
</mx:HBox>

答案 3 :(得分:0)

如果您的窗口可以重新调整大小,建议不要使用绝对布局 - 最好使用width =“100%”和height = 100%,然后使用minHeight / minWidth / maxWidth等。 在您的情况下,您可以设置间隔的最小宽度/高度(在2个组件之间),以便页面按比例缩放。