2009-11-08 7 views
1

컨트롤 사이에 일정량의 픽셀이있는 컨트롤 집합을 프로그래밍 방식으로 추가해야합니다. Flex docs에서이 작업을 수행하는 방법을 찾지 못했습니다. 내가 어떻게 해?Flex에서 절대 위치 지정?

답변

2

대부분의 컨테이너에는 아이템을 배치 할 수있는 로직이 있습니다 (예 : 수직 또는 수평으로. 나는.

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

또는 스크립트 : 당신은 공간의 5 개 픽셀이 (수직 레이아웃 중 VBOX)가 HBox의을 사용하여 수평으로 배치 할 경우

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

하지만 당신은 사용하여 직접 배치 할 경우 X, Y 좌표 (예 : 절대 위치) 사용할 수있는 캔버스 :

<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

절대 위치 지정이있는 컨테이너 내부, 예. 캔버스, x 및 y (또는 오른쪽, 왼쪽, 위, 아래)로 요소를 배치 할 수 있습니다.

elem.x = 100;

elem.y = 200;

canvas.addChild (elem);

+0

그는 요소 자체에서 요소 위치를 지정할 수도 있습니다. 예 :

0

Spacer을 사용하여 구성 요소 사이에 공간을 추가 할 수도 있습니다. 당신의 창 크기를 다시 할 수있는 경우

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

은 절대 레이아웃을 사용하지 않는 것이 좋습니다 - 중요 minHeight/minWidth를 /의 maxWidth를 = 100 % = "100 %"폭과 높이를 사용하고 사용하는 것이 좋습니다 수 있습니다 경우에 따라 페이지의 비례에 맞게 스페이서의 최소 폭/높이 (2 개 구성 요소 사이)를 설정할 수 있습니다.