Flex Text Input с иконкой внутри, как Mac OS X поиска текста ввода - PullRequest
0 голосов
/ 25 марта 2010

Я пытаюсь расширить ввод текста, который входит в flex, для поддержки значка, так же, как в Mac OS X для поиска текста вводим серый кружок, выровненный вправо, ввод текста имеет метод addChild, но не работает для меня.

Есть ли способ сделать это?

заранее спасибо

Ответы [ 2 ]

1 голос
/ 26 марта 2010

Я нашел решение: 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;
    }
}
}
1 голос
/ 25 марта 2010

Более простой способ сделать это - создать компонент mxml, похожий на нужный вам ввод текста. Я никогда не видел окно поиска Mac OSX, но на основании вашего описания компонент, основанный на холсте с белым фоном, и соответствующие границы могли бы содержать изображение и текстовый ввод без границ. Я думаю, это даст тебе такой образ, как ты.

...