嘿伙计我正在为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);
}
答案 0 :(得分: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
答案 1 :(得分:1)
简短的回答是,您无法 - Flash TextFields不支持背景图片。
而是将位图放在文本字段后面。
答案 2 :(得分:0)
这可以解决问题。
txt.htmlText =“http://www.flexflashforum.com/styles/prosilver/imageset/site_logo.gif'width ='139'height = '52'>此图片位于Flash的动态文字字段下”