我有一个 TextInput 控件,它具有系统中人员的搜索功能。它工作正常。我所需要的只是以这样的方式对其进行样式设置,它将在右侧具有搜索图像,单击该图像时将进行搜索。它实际上是应用程序的外观和感觉部分,这将使搜索框看起来更好。
这与嵌入在 Firefox 中的搜索框实现的行为完全相同。
有什么解决办法吗?
谢谢 :)
我有一个 TextInput 控件,它具有系统中人员的搜索功能。它工作正常。我所需要的只是以这样的方式对其进行样式设置,它将在右侧具有搜索图像,单击该图像时将进行搜索。它实际上是应用程序的外观和感觉部分,这将使搜索框看起来更好。
这与嵌入在 Firefox 中的搜索框实现的行为完全相同。
有什么解决办法吗?
谢谢 :)
确认,避免子类化。跳出框框思考,并使用画布:
<mx:Canvas>
<mx:TextInput change="doSearchFor(event.currentTarget.text)" />
<mx:Image source="search_icon.png" verticalCenter="0" right="5" />
</mx:Canvas>
如果你想让它更整洁,那就让它本身成为一个组件。在 MXML 中和在其他地方一样,优先考虑组合而不是继承。
<mx:HBox>
<mx:TextInput id = "txtSearch"/>
<mx:Image source = "yourSearchIcon.png"
click = "doSearch()"
buttonMode = "true"/>
</mx:HBox>
就这样!
希望这段代码对您有所帮助。此代码在TextInput
.
public class SearchInputBox extends TextInput
{
[Embed(source='../../../../assets/images/icons/searchIcon.png')]
private var searchIcon:Class;
private var searchImg:Image;
override protected function createChildren():void
{
super.createChildren();
searchImg = new Image();
searchImg.source = searchIcon;
searchImg.width=15;
searchImg.height=15;
searchImg.x = 2;
searchImg.y = 3;
setStyle("paddingLeft",searchImg.width+2);
addChild(searchImg);
}
}
您可以编写 TextInput 类的子类,它具有“yourSearchIcon”图像的图像,例如:
[Embed(source='../../libs/graphic_elements.swf#search_ico')]
private var searchIcon:Class;
private var searchImg:Image = new Image();
private function onCreationComplete(event:Event) : void {
searchImg.source = searchIcon;
searchImg.x = this.width - 40;
this.addChild(searchImg);
this.addEventListener(ResizeEvent.RESIZE, onResize);
}
显然你必须处理调整大小事件
private function onResize(event:ResizeEvent) : void {
searchImg.x = event.currentTarget.width - 40;
}
那是您的自定义组件