2011-08-25 105 views
1

我目前正在修改flex GUI以使其具有新的外觀。我是新來flex,但我設法完成大部分工作。但是我有一個組合框的一個問題:我用一個相當大的字體大小和一些字符底部被截斷(「G」,例如,或基準下的任何字符會):
truncated g如何防止截斷Flex組合框中文本的底部?

我首先想到的是組件高度的問題,但即使是非常大的高度,字符也會被截斷,文本上方和下方都會出現大的空白空間。
我在網上尋找解決方案,但沒有找到一個。最糟糕的是:雖然它看起來很重要,但我無法找到我的問題的參考。有沒有CSS屬性來防止這種行爲,或者我必須在其他地方看看?

編輯:我使用Flex 3和光環/ MX組件

+1

您使用的是Spark還是Halo/MX組件? – JeffryHouser

+0

你能告訴我們現有的代碼嗎?這將使我們更容易爲您提供準確的解決方案。 –

回答

0

我認爲,這不是Comobox本身,而是它的內部標籤。您可以嘗試設置paddingBottom,以查看標籤是否會繼承該標籤,但創建自己的標籤子類並將其用作textFieldClass可能會更好。

+0

似乎有點像過度需要經常需要的東西......我仍然不明白爲什麼我在其他地方找不到這個問題的參考,因爲它確實影響了GUI的最終外觀。 –

+0

如果你進入Robotlegs,那麼創建一個Class的擴展以作爲一個標記來說「我想以不同方式處理這些Class的實例」是很常見的。就你而言,你只需創建一個MyLabel extends Label Class,然後爲MyLabel創建特殊的CSS。大約2分鐘的工作...... 2分鐘的工作在我的世界裏沒有矯枉過正:) –

+0

我設法擴展了Label類,並用CSS設置了它的樣式,並將它定義爲combobox的itemrenderer。然而,它隻影響下拉項目,我如何使用我的課程作爲所選字段的渲染器? –

0

ComboBox組件包含一個內部TextInput。您必須擴展ComboBox類並將textinput的高度修改爲所需的高度。

例如,假設你把20的字體大小和該擴展類:

public class MyCb extends ComboBox 
    { 
     public function MyCb() 
     { 
      addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);   
     } 

     private function onCreationComplete(e:Event):void { 
      this.textInput.height = 40; 
     } 
    } 

主要應用:

<mx:VBox width="100%" height="100%">  
    <mx:ComboBox fontSize="20" > 
     <mx:dataProvider> 
      <mx:Object label="goubigoulba"/> 
      <mx:Object label="goubigoulba"/> 
     </mx:dataProvider> 
    </mx:ComboBox> 

    <local:MyCb fontSize="20" > 
     <local:dataProvider> 
      <mx:Object label="goubigoulba"/> 
      <mx:Object label="goubigoulba"/>   
     </local:dataProvider>  
    </local:MyCb> 
</mx:VBox> 

您將得到以下結果:

enter image description here