2011-09-11 5 views
0

설정 팝업을 내 Flex 4.5 응용 프로그램에 추가하려고하는데 어떤 이유로 Form Help 문자열이 TitleWindow 외부로 그려지는 문제가 있습니다. 양식에 폭 = "100 %"높이 = "100 %"을 추가하는 것은 아무 것도 변경하지 않습니다PopUpManager + TitleWindow + Form : helpContent가 TitleWindow 외부로 그려졌습니다.

screenshot

사람이 어떻게이 사건을 처리하는 아이디어가하십시오 있습니까?

다음은 매우 간단한 테스트 코드입니다. Flash Builder 4.5 프로젝트에 붙여 넣으면 즉시 문제가 표시됩니다.

SettingsTest.mxml :

<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:comps="*" 
    width="700" height="525" > 

    <fx:Script> 
     <![CDATA[ 
      import mx.managers.PopUpManager; 

      private function showSettings(event:MouseEvent):void { 
       var _settings:Settings = 
        PopUpManager.createPopUp(this, Settings, true) as Settings; 
       PopUpManager.centerPopUp(_settings); 
      }   
     ]]> 
    </fx:Script> 

    <s:Button right="10" bottom="10" label="Settings" click="showSettings(event)" /> 

</s:Application> 

Settings.mxml :

<?xml version="1.0" encoding="utf-8"?> 
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    width="400" height="300" 
    close="handleClose()" 
    creationComplete="init(event)"> 

    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 
      import mx.managers.PopUpManager; 
      import flash.filters.ColorMatrixFilter; 

      private var _settings:SharedObject = 
       SharedObject.getLocal('settings'); 

      public function init(event:FlexEvent):void { 
       handleHide(null); 
      } 

      private function handleClose():void { 
       PopUpManager.removePopUp(this); 
      } 

      private function handleHide(event:Event):void { 
       var hide:Number = _hide.value; 
       _settings.data.hide = hide; 
       _settings.flush(); 

       if (hide >= 0.8) { 
        filters = null; 
       } else { 
        var matrix:Array = new Array(); 
        matrix = matrix.concat([1, 0, 0, 0, 1]);  
        matrix = matrix.concat([0, 1, 0, 0, 1]);  
        matrix = matrix.concat([0, 0, 1, 0, 1]);  
        matrix = matrix.concat([0, 0, 0, hide, 1]); 

        filters = [ new ColorMatrixFilter(matrix) ]; 
       } 
      } 
     ]]> 
    </fx:Script> 

    <s:Form width="100%" height="100%"> 
     <s:FormItem label="Invisible:">   
      <s:HSlider id="_hide" minimum="0.25" maximum="1.00" value="1.00" stepSize="0.25" change="handleHide(event)" /> 
      <s:helpContent> 
       <s:Label text="Make the game less visible at the screen" /> 
      </s:helpContent> 
     </s:FormItem> 
    </s:Form> 
</s:TitleWindow> 

답변

1

이 내가 생각 양식의 문제가 있지만, 레이블 문제가되지 않습니다. 레이블에 width="100%"을 추가하거나 절대 너비를 지정하십시오.