2009-08-03 75 views
4

有谁知道如何在AS3中创建带有可见边框和圆角的动态文本字段?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

使用标记actionscript-3。你会得到更多的意见。 :D – 2009-08-03 18:13:14

+0

谢谢!好的想法 – Bryan 2009-08-03 18:15:14

回答

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); 
    } 
} 

} 
0

你可以使用CSS样式吗?喜欢的东西:

TextInput { 
    borderStyle: solid; 
    borderThickness: 1; 
    cornerRadius: 2; 
} 

我没有测试过这一点,但应该给你一个圆角。

+0

谢谢。我编辑了这个问题以包含我所改变的内容,但仍然无效。 – Bryan 2009-08-03 18:00:30

0

我最终在Flash中创建了一个圆角矩形并将其导出为它自己的类 - hotspotBG。

var hotspotBackground:hotspotBG = new hotspotBG(); 
hotspotBackground.width = textField.width + 10; 
caption.addChild(hotspotBackground); 
0

您无法更改自己的文本字段,因为2014年的Flash不允许这样做。

你可以做的是删除背景和边框, 这将离开文本字段完全透明的, 然后添加图像(矩形工具就是做最简单的方法)在文本字段的后面, 使文本字段位于图像的顶部(Z轴方向)

它可能不是你想象的那种方式,但它有效!

//you are deleting the background and the borders //and replacing them with an image textbox.background=false; textbox.border=false;