我正在尝试扩展flex中的文本输入以支持图标,就像mac os x搜索文本输入有一个右边对齐的灰色圆圈,文本输入有一个addChild方法,但它没有'为我工作。
有没有办法做到这一点?
提前致谢
答案 0 :(得分:1)
更简单的方法是创建一个看起来像所需文本输入的mxml组件。我从来没有见过mac OSX搜索框,但根据你的描述,一个基于画布的组件带有白色背景,然后适当的边框可以包含图像和没有边框的文本输入。这会让你看起来像我想的那样。
答案 1 :(得分:1)
我找到了一个解决方案:D这里是代码
技巧是覆盖updateDisplayList。
快乐的黑客攻击。
package
{
import flash.display.DisplayObject;
import mx.controls.Image;
import mx.controls.TextInput;
import mx.core.mx_internal;
use namespace mx_internal;
public class MyTextInput extends TextInput
{
private var _image:Image;
public function MyTextInput()
{
super();
}
override protected function createChildren():void
{
super.createChildren();
_image = new Image();
_image.source = "http://sstatic.net/so/img/replies-off.png",
addChild(DisplayObject(_image));
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
this._image.width = 16;
this._image.height = 16;
this._image.x = this.width - this._image.width - 5;
this._image.y = this.height - this._image.height;
this.textField.width = this.width - this._image.width - 5;
}
}
}