0

テキストの長さに関係なく、テキスト ラベルを中央に配置する方法はありますか? テキスト ラベルには、Facebook プロフィールからの名前が表示されますが、名前が短いとテキストが中心からずれて見えます。一元化したいものの例:

public var nameFormat = new TextFormat("Arial Rounded MT Bold", 28, 0xFFFFFF, null, null, null, null, TextFormatAlign.CENTER);

var PHPvariablespassedin:Object = LoaderInfo(this.root.loaderInfo).parameters;
nameText.defaultTextFormat = myFormat;
nameText.text = String(PHPvariablespassedin['username']);
interfaceLayer.addChild(nameText);
nameText.x = 186;
nameText.y = 80;
nameText.width = 750;
nameText.wordWrap = true;
nameText.selectable = false;
nameText.embedFonts = true;
nameText.antiAliasType = AntiAliasType.ADVANCED;
nameText.setTextFormat(nameFormat);

ありがとうございました。

4

2 に答える 2

0

この解決策を試してみてください。あなたの場合に最も適していると思います(TextFormat.align固定幅*テキストフィールドの高さのプロパティを介してテキストを中央に配置します):

    var tf:TextField = new TextField();
    //this is by default is NONE, but we must be sure
    tf.autoSize = TextFieldAutoSize.NONE;

    //the main idea set align property to TextFormatAlign.CENTER
    var format:TextFormat = new TextFormat("Arial", 12, 0x000000, null, null, null, null, null, TextFormatAlign.CENTER);

    //set size to fit the format size (this may be already done in flash IDE for example in your skin)
    tf.height = 22;
    tf.width = 100;
    tf.defaultTextFormat = format;
    tf.text = "small";
于 2013-05-26T11:54:43.217 に答える
0

TextField を中央に配置するサイズの背景オブジェクト (透明にすることができます) が必要です。これらのことを仮定しましょう:

  • MC の左上に登録ポイントがあります
  • 背景オブジェクトは 0, 0 に配置されます
  • ステージ上に、インスタンス名が の TextField があります。textField

これを MovieClip の基本クラスとして適用できます。

public class CenteredTextt extends Sprite {

   public var textField:TextField;// ステージから Flash によって入力されます
   保護された var _text:String;

   public function get text():String {
      _text を返します。
   }
   public function set text(value:String):void {
      if (テキストフィールド) {
          textField.defaultFormat = textField.getTextFormat();// 一度だけ実行する必要があるため、これをコンストラクターに移動したい場合があります
          textField.autoSize = TextFieldAutoSize.LEFT;
          textField.htmlText = テキスト;
          textField.x = width/2 - textField.width/2;
          textField.y = 高さ/2 - textField.高さ/2;
      }
   }
}
于 2013-05-26T12:28:28.920 に答える