2011-08-25 65 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