1

我有一个 TextInput 控件,它具有系统中人员的搜索功能。它工作正常。我所需要的只是以这样的方式对其进行样式设置,它将在右侧具有搜索图像,单击该图像时将进行搜索。它实际上是应用程序的外观和感觉部分,这将使搜索框看起来更好。

这与嵌入在 Firefox 中的搜索框实现的行为完全相同。

有什么解决办法吗?

谢谢 :)

4

4 回答 4

2

确认,避免子类化。跳出框框思考,并使用画布:

<mx:Canvas>
    <mx:TextInput change="doSearchFor(event.currentTarget.text)" />
    <mx:Image source="search_icon.png" verticalCenter="0" right="5" />
</mx:Canvas>

如果你想让它更整洁,那就让它本身成为一个组件。在 MXML 中和在其他地方一样,优先考虑组合而不是继承。

于 2009-07-15T07:27:39.683 回答
1
<mx:HBox>
    <mx:TextInput id     = "txtSearch"/>
    <mx:Image source     = "yourSearchIcon.png" 
              click      = "doSearch()" 
              buttonMode = "true"/>
</mx:HBox>

就这样!

于 2009-06-29T15:29:57.950 回答
0

希望这段代码对您有所帮助。此代码在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);

}
}
于 2009-08-20T17:00:51.167 回答
0

您可以编写 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;

    }

那是您的自定义组件

于 2009-07-10T08:31:34.057 回答