2013-05-26 2 views
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); 

감사합니다.

+0

의 기본 클래스로이를 적용 할 수 있습니다 당신이 TextField를 의미합니까 또는 TextLabel (buton 또는 무언가)?! 언제나처럼 일부 코드는 도움이 될 것입니다! – M4tchB0X3r

+0

죄송합니다. 업데이트되었습니다. – Liam

+0

좋아요, fsbmain과 같습니다. use TextFormat.TextFormatAlign.CENTER – M4tchB0X3r

답변

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"; 
+0

TextFieldAutoSize.NONE을 사용하면 TextFied가 모든 콘텐츠를 표시 할 수 있다고 생각하지 않습니다. –

+0

이지만 TextFormat이있는 autoSized 텍스트 필드 센터는 작동하지 않습니다. 그것은 주제 저자는 정적 피부를 가지고있는 것 같아요, 그래서 그는 텍스트 필드에 대한 고정 된 영역을 가지고 있다고 생각합니다, 그래서 그는 자동 텍스트 필드가 없습니다, 그의 코드는 또한 내 제안을 확인했습니다) – fsbmain

+0

이 작업을 위해 x와 y 위치를 제거해야합니까 ? 다른 것을 변경하지 않고'TextFormatAlign.CENTER'를 추가하려고 시도했지만 작동하지 않았습니다. 텍스트 필드 또는 기타의 너비를 변경해야합니까? – Liam

0

(이 수 투명하게 표시)는 TextField를 가운데에 맞출 크기로 만듭니다. 이제이 일을 가정 해 봅시다 :

  • 귀하의 MC는 상단에 등록 포인트는
  • 개체가 0에 위치 배경,
  • 0 당신은 textField
  • 의 인스턴스 이름으로 무대에 텍스트 필드가 남아있다

그런 다음 무비 클립

 
public class CenteredTextt extends Sprite { 

    public var textField:TextField;//will be populated by Flash from the stage 
    protected var _text:String; 

    public function get text():String { 
     return _text; 
    } 
    public function set text(value:String):void { 
     if (textField) { 
      textField.defaultFormat = textField.getTextFormat();//may want to move this to a constructor, since it only needs to be done once 
      textField.autoSize = TextFieldAutoSize.LEFT; 
      textField.htmlText = text; 
      textField.x = width/2 - textField.width/2; 
      textField.y = height/2 - textField.height/2; 
     } 
    } 
}
관련 문제