是否有人知道如何在AS3中创建具有可见边框和圆角的动态文本字段?
我想我可能需要创建一个圆形的动画片段,调整大小并将其放在文本后面。
我尝试了这个,但我没有看到任何变化。
var styleRound:StyleSheet = new StyleSheet();
styleRound.parseCSS("h4{cornerRadius:10;borderStyle: solid; borderThickness: 1;}");
tf.htmlText = "<h4>" + hotspotData.caption + "</h4>";
tf.styleSheet = styleRound;
答案 0 :(得分:8)
以下是available CSS styles for TextFields in ActionScript 3的列表。对不起,没有角半径。
您可以在TextField对象border property上为文本字段打开边框。但是拐角处没有可用的房产。
我建议您创建一个新组件,并在TextField下面自己添加边框作为Sprite。类似的东西:
package
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class TextBorder extends Sprite
{
private static const CORNER_RADIUS:int = 5;
// display objects
private var background:Sprite;
private var field:TextField;
// properties
private var _text:String;
public function TextBorder()
{
background = new Sprite;
field = new TextField;
field.autoSize = TextFieldAutoSize.LEFT;
addChild(background);
addChild(field);
// TESTING:
text = "Hello World";
}
public function set text(newText:String):void
{
_text = newText;
display();
}
public function get text():String
{
return _text;
}
private function display():void
{
field.text = _text;
var g:Graphics = background.graphics;
g.clear();
g.lineStyle(0, 0x0);
g.beginFill(0xFFFFFF);
g.drawRoundRect(0, 0, field.width, field.height, CORNER_RADIUS);
}
}
}
答案 1 :(得分:0)
我最终在flash中创建了一个圆角矩形并将其导出为自己的类 - hotspotBG。
var hotspotBackground:hotspotBG = new hotspotBG();
hotspotBackground.width = textField.width + 10;
caption.addChild(hotspotBackground);
答案 2 :(得分:0)
您无法自行更改文本字段,因为2014年的Flash不允许这样做。
你可以做的是删除背景和边框, 这将使文本字段完全透明, 然后在文本字段的后面添加一个图像(矩形工具是最简单的方法), 以便文本字段位于图像顶部(z轴方向)
这可能不是你想象的那样,但它真的有效!
//you are deleting the background and the borders
//and replacing them with an image
textbox.background=false;
textbox.border=false;
答案 3 :(得分:-1)
你能使用CSS样式吗?类似的东西:
TextInput {
borderStyle: solid;
borderThickness: 1;
cornerRadius: 2;
}
我没有对此进行过测试,但是应该给你一个圆角。