4

AS3 で境界線が表示され、角が丸くなった動的テキストフィールドを作成する方法を知っている人はいますか?

丸みを帯びたムービークリップを作成し、サイズを変更してテキストの後ろに配置する必要があると思います。

これを試しましたが、変更は見られません。

var styleRound:StyleSheet = new StyleSheet();
styleRound.parseCSS("h4{cornerRadius:10;borderStyle: solid; borderThickness: 1;}");
tf.htmlText = "<h4>" + hotspotData.caption + "</h4>";
tf.styleSheet = styleRound;
4

4 に答える 4

8

ActionScript 3 の TextField で使用できる CSS スタイルのリストを次に示します。申し訳ありませんが、角の半径はありません。

TextField オブジェクトの border プロパティで、テキスト フィールドの境界線をオンにすることができます。しかし、角を曲がるために利用できるプロパティはありません。

新しいコンポーネントを作成し、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);
    }
}

}
于 2009-08-03T19:02:41.397 に答える
0

最終的に、フラッシュで角丸長方形を作成し、それを独自のクラス (hotspotBG) としてエクスポートしました。

var hotspotBackground:hotspotBG = new hotspotBG();
hotspotBackground.width = textField.width + 10;
caption.addChild(hotspotBackground);
于 2009-08-03T18:40:07.620 に答える
-1

CSS スタイルだけを使用できますか? 何かのようなもの:

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

私はこれをテストしていませんが、角が丸くなるはずです。

于 2009-08-03T17:44:28.090 に答える