0

嘿伙计们,我正在为 iPhone 开发一个应用程序,我试图弄清楚如何将背景图像添加到由用户存储的电话号码填充的文本字段中。

我的功能 -

function configureLabel():void
{
    label = new TextField();
    label.autoSize = TextFieldAutoSize.LEFT;
    label.background = true;
    label.border = true;
    label.width = 50;
    label.x = 55;
    label.y = 80;
    //label.htmlText = "whasfd";
    var format:TextFormat = new TextFormat();
    format.font = "arial";
    format.color = 0xFF0000;
    format.size = 10;
    format.underline = false;
    //format.leftMargin = 50;


    label.defaultTextFormat = format;
    addChild(label);
}
4

3 回答 3

2

您可以创建一个包含文本字段和背景的显示对象类。然后,您只需将事件侦听器添加到侦听任何更改的文本字段。每次发生更改时,背景都会将自身调整为文本字段的当前大小。

这是一个例子:

package 
{
    import flash.display.Bitmap;
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFieldType;
    import flash.text.TextFormat;

    public class Main extends Sprite 
    {

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);

        }// end function

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
            loader.load(new URLRequest("images/koala.jpg"));

        }// end function

        private function onComplete(e:Event):void {

            var bitmap:Bitmap = ((e.target as LoaderInfo).content as Bitmap);

            var container:TextFieldContainer = new TextFieldContainer();
            container.textField.autoSize = TextFieldAutoSize.LEFT;
            container.textField.defaultTextFormat = new TextFormat(null, null, 0xFF0000);
            container.textField.type = TextFieldType.INPUT;
            container.textField.multiline = true;
            container.setBackground(bitmap);
            addChild(container);

        }// end function

    }// end class

}// end package

import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;

class TextFieldContainer extends Sprite {

    private var _textField:TextField;
    private var _backgroundContainer:Sprite;

    public function get textField():TextField {

        return _textField;

    }// end function

    public function TextFieldContainer():void {

        _backgroundContainer = new Sprite();
        addChild(_backgroundContainer);

        _textField = new TextField();
        _textField.addEventListener(Event.CHANGE, onChange);
        addChild(_textField);

    }// end function

    private function onChange(e:Event):void {

        resizeBackground();

    }// end function

    public function setBackground(displayObject:DisplayObject):void {

        if (_backgroundContainer.numChildren > 0) {
            _backgroundContainer.removeChildAt(0);
        }// end if

        _backgroundContainer.addChild(displayObject);

        resizeBackground();

    }// end function

        private function resizeBackground():void {
            _backgroundContainer.width = _textField.width;
            _backgroundContainer.height = _textField.height;
        }

}// end function
于 2012-11-13T21:31:47.877 回答
1

简短的回答是您不能 - Flash TextFields 不支持背景图像。

而是在您的文本字段后面放置一个位图。

于 2012-11-10T22:36:14.957 回答
0

这可以解决问题。

txt.htmlText ="http://www.flexflashforum.com/styles/prosilver/imageset/site_logo.gif' width='139' height='52'> 此图像在 Flash 的动态文本字段下"

于 2014-07-12T05:10:56.420 回答