2010-03-16 5 views
0

참고로, 저는 Flex 초보자입니다.Flex3 : 내용의 크기에 따라 컨테이너의 크기를 조정하려면 어떻게해야합니까?

포함 된 구성 요소의 크기에 따라 자동으로 축소되어 사용자가 최소한의보기로 축소하여 포함 된 HTML 페이지를 더 많이 볼 수 있도록 Flex 응용 프로그램을 만들려고합니다.

ExternalInterface를 사용하여 전체 응용 프로그램의 크기를 변경하는 방법을 알고 있지만 뭔가 숨겨 지거나 표시 될 때 크기가 변경된 정도를 자동으로 파악하는 데 문제가 있습니다. 예를 들어

:

의 내가 다음 플렉스 레이아웃 있다고 가정 해 봅시다 : 텍스트 필드의

<?xml version="1.0" encoding="utf-8"?> 
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> 
     <mx:VBox width="100%" paddingTop="0" paddingBottom="0" 
       paddingLeft="0" paddingRight="0" horizontalGap="0" id="mainVBox"> 
      <mx:HBox>    
       <mx:Button label="hide-show b" click="{showHideB()}"/> 
      </mx:HBox> 

      <mx:Text id="a" text="a" fontSize="42" textAlign="center"/> 
      <mx:Text id="b" text="b" fontSize="42" textAlign="center"/> 

    </mx:VBox> 
</mx:Application> 

어떻게 숨길 수를하고, VBox의 축소 원인? 현재 visible = false로 설정 중이지만 상위 VBox에는 영향을 미치지 않습니다.

일단 VBox가 축소되면 응용 프로그램이 더 이상 많은 공간을 필요로하지 않는다는 것을 어떻게 감지 할 수 있습니까?

ResizeEvent를 사용해 보았지만 제대로 작동하지 못했습니다.하지만 뭔가 잘못하고 있습니다.

감사합니다.

답변

1

Flex는 CSS에서 HTML DOM과 함께 사용하는 것과 같은 종류의 "표시"스타일을 사용하지 않습니다. 「가시성」및 「표시」의 Flex 상당은, 각각 「가시」및 「includeInLayout」입니다.

그래서 당신이 뭔가를, 시야에서 및 문서 흐름에서 요소를 제거하고 싶은 경우 :

.aStyle { 
    visible: false; 
    includeInLayout: false; 
} 

ActionScript에서이 설정을 사용하면 한 줄에 쓸 수있는 경우 :

// myVBox is a VBox 
    myVBox.visible = myVBox.includeInLayout = false; 

이제는 컨테이너를 "수축에 맞춰"허용하는 것과 같이 매우 쉽습니다. 그냥 너비 나 높이를 두지 마십시오. 위의 VBox는 너비 = "100 %"입니다. 즉, 부모 컨테이너와 형제가 제공하는만큼의 공간을 항상 차지합니다.

관련 문제