我是Flex编程的新手。我想为应用程序实现自定义工具条。此工具条将包含一个菜单栏(或自定义的等效项),以显示常用菜单项,如文件,编辑等,以及搜索框。它应该足够灵活,以便将来包括其他菜单项,如书签等。有人可以建议最合适的控件来继承我的组件吗?我一直在考虑mx:Group
,s:BorderContainer
,mx:HBox
,但无法在它们之间做出选择。并且它们都不是特别适合我的任务,因为它们仅指定其他对象的布局。是否有任何组件直接支持此类功能。我还考虑过使用mx:MenuBar
,但我不知道它是否足够灵活,可以添加搜索框等非菜单项。
答案 0 :(得分:2)
在最基本的级别,您的工具栏将需要布局控件。我通常在实现工具栏时使用s:HGroup容器,并根据需要添加菜单,按钮,分隔符,搜索框等。您可能想要绘制某种背景,例如渐变,以使其看起来更漂亮。对于Flex 4,这通常使用蒙皮来完成,但我认为对于这样一个不需要根据不同状态更改其外观的简单组件来说,这有点过分。我建议使用以下内容,它允许您绘制工具栏的背景而无需为其创建单独的皮肤文件:
<?xml version="1.0" encoding="utf-8"?>
<s:Group 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="100%">
<s:Rect left="0" right="0" top="0" bottom="0">
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry color="0xe0e0e0"/>
<s:GradientEntry color="0xa0a0a0"/>
</s:LinearGradient>
</s:fill>
</s:Rect>
<s:HGroup top="2" bottom="2" left="8" right="8" verticalAlign="middle">
<s:Button label="Something"/>
<s:Button label="Another"/>
<s:Button label="Other Another"/>
<mx:Spacer width="100%"/>
<s:TextInput/>
</s:HGroup>
</s:Group>
答案 1 :(得分:1)
为了提高速度和易用性,请使用MenuBar。
也许是这样的:
//psuedo code
<HGroup> //draw your background for both components in the HGroup container
<menuBar> //menubar has a transparent background
<spacer width="100%">
<searchBox>
</HGroup>