2011-09-10 4 views
0

어떻게 응용 프로그램의 ControlBar를 Flex 4.5의 맨 아래로 이동할 수 있습니까?spark.components.Application의 ControlBar를 맨 아래로 이동하십시오.

Adobe doc는 말한다 :

기본적으로

에서, ApplicationSkin 클래스는 회색 배경으로 응용 프로그램 컨테이너 의 콘텐츠 영역의 맨 위에 표시 에 컨트롤 바 영역을 정의합니다. 사용자 정의 스킨을 만들어 컨트롤 막대의 모양을 기본값 인 으로 변경합니다.

그래서 나는 spark.skins.spark.ApplicationSkin보고와 controlBarGroup은 (는 컨트롤 막대의 내용을 유지합니까?)이있다, 그러나 나는 위에서 아래로 이동하는 방법을 모르겠어요.

답변

1

먼저해야 할 일은 사용자 정의 스킨 클래스를 만드는 것입니다. FlashBuilder (FB)에는 자동으로 생성하는 옵션이 있지만 본질적으로 다른 클래스와 같은 클래스입니다. FB에서

, 프로젝트 어딘가에서 마우스 오른쪽 버튼을 클릭하고 다음과 같이 '새> MXML 스킨'

enter image description here

그런 다음 마법사의 양식을 작성을 선택하십시오 그렇지 않으면

enter image description here

새로운 .mxml 파일을 만들고 코드를 spark.skins.spark.ApplicationSkin에서 복사하여 붙여 넣기 만하면됩니다. 이제

<s:Application ... skinClass="skins.MyApplicationSkin" /> 

의가 새로 생성 된 피부 클래스를 편집 할 수 :

그런 다음 응용 프로그램에서 당신이 방금 만든 스킨 클래스를 지정합니다. 이것은 당신에게 흥미로운 부분입니다. (나는 더 명확하게하기 위해 몇 조각을 잘라냅니다) :

<s:Group left="0" right="0" top="0" bottom="0"> 
    <s:layout> 
     <s:VerticalLayout gap="0" horizontalAlign="justify" /> 
    </s:layout> 

    <s:Group id="topGroup" minWidth="0" minHeight="0" 
       includeIn="normalWithControlBar, disabledWithControlBar" > 

     <!-- some graphic elements here --> 

     <s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" ...> 
      <s:layout> 
       <s:HorizontalLayout ... /> 
      </s:layout> 
     </s:Group> 
    </s:Group> 

    <s:Group id="contentGroup" width="100%" height="100%" ... /> 

</s:Group> 

거의가 있습니다. 이제 우리가해야 할 일은 'contentGroup'아래의 'topGroup'을 이동하는 것입니다. 'topGroup'은 일부 그래픽 + controlBarGroup을 포함합니다. 'contentGroup'은 모든 구성 요소가 삽입되는 영역이며 응용 프로그램 .mxml 파일에 삽입됩니다.

<s:Group left="0" right="0" top="0" bottom="0"> 
    <s:layout> 
     <s:VerticalLayout gap="0" horizontalAlign="justify" /> 
    </s:layout> 

    <s:Group id="contentGroup" width="100%" height="100%" ... /> 

    <s:Group id="topGroup" minWidth="0" minHeight="0" 
       includeIn="normalWithControlBar, disabledWithControlBar" > 

     <!-- some graphic elements here --> 

     <s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" ...> 
      <s:layout> 
       <s:HorizontalLayout ... /> 
      </s:layout> 
     </s:Group> 
    </s:Group> 

</s:Group> 
+0

좋은 설명 주셔서 감사합니다,이 작품! 그리고 "backgroundRect"를 수정하여 배경 채우기를 그래디언트로 변경했습니다. –

0

콘텐츠 그룹 아래로 컨트롤 막대 그룹을 옮길 수 있으며, 특히 부모 그룹의 레이아웃 (세로)을 보면 예상대로 작동해야합니다.
더 많은 제어권을 행사하려면 partAdded 메서드를 재정의하십시오.

+0

감사합니다.하지만 "제어 그룹 그룹을 콘텐츠 그룹 아래로 이동"하는 방법은 무엇입니까? –

+0

spark.skins.spark.ApplicationSkin의 소스 코드에 액세스하십시오. 코드를 복사하여 작성한 새로운 구성 요소 (예 : MySkin)에 붙여 넣습니다. 그런 다음, 코드 그룹의 일부인 controlBarGroup을 id 아래에있는 contentGroup 그룹으로 이동하십시오. – Radu