2011-11-10 3 views
0

나는 xml에서 몇 마디를 얻으 려하고 무대 중앙에 나란히 놓습니다. 아래 코드를 통해이 작업을 수행했습니다. 나는 내부 텍스트에 따라 텍스트 필드의 크기를 자동으로 조정한다. 그러나 이번에는 단어 사이에 공간이 생깁니다. 내가 성취 한 것은 그들 사이에 공간없이 자동 응답 및 인접 단어를 갖는 것입니다. 그러나 나는 그 문제를 해결할 수 없었다. 해결 방법을 알려주세요. 사전actionscrip3 텍스트 필드 크기 조정 끝 센터

   var partsWidth=100;    
       var wordTf = new TextField(); 
       wordTf.name =thispart; 
       wordTf.text =thispart; 
       wordTf.width=partsWidth; 
       xStartPoint=stage.stageWidth/2 - (numberOfWords * partsWidth)/2; 
       wordTf.height=partsHeight; 
       wordTf.x= xStartPoint + (index * partsWidth) ; 
       wordTf.y=150; 
       wordTf.background=true; 
       wordTf.backgroundColor = 0xe3e3e3; 

       wordTf.border = true; 
       var myFormat:TextFormat = new TextFormat(); 
        myFormat.size = 16; 
        myFormat.align = TextFormatAlign.CENTER; 

       wordTf.setTextFormat(myFormat); 
       wordTf.autoSize=TextFieldAutoSize.CENTER; 
       addChild(wordTf); 
+0

단어 또는 문자 사이에? 단어 사이에 – Benny

+0

partsWidth 값이 100이거나 다른 단어를 설정하기 때문에 단어 사이에 공백이옵니다. 하지만 너비 값을 제거하면 위치를 계산하고 센터링 할 수 없습니다. – mustafa

답변

1

에서 덕분에 당신은 wordTf.width=partsWidth;에 명시 적으로 폭을 설정한다. 이것은 autosize 옵션보다 우선합니다. 다음 코드를 사용합니다.

var container:Sprite = new Sprite(); 

var myFormat:TextFormat = new TextFormat(); 
    myFormat.size = 16; 
    myFormat.align = TextFormatAlign.CENTER; 

for each(var thispart:String in parts) 
{ 
    var wordTf = new TextField(); 
    wordTf.defaultTextFormat = myFormat; 
    wordTf.name = thispart; 
    wordTf.text = thispart; 
    wordTf.height=partsHeight; 
    wordTf.background=true; 
    wordTf.backgroundColor = 0xe3e3e3; 
    wordTf.border = true; 
    wordTf.width = wordTf.textWidth + 4; 
    wordTf.y=150; 
    wordTf.x = container.width; 
    container.addChild(wordTf); 
} 

container.x = (stage.stageWidth - container.width)/2; 
addChild(container); 

은 별도의 스프라이트에 단어를 추가하고, 모든 단어를 추가 한 후, 무대에이 스프라이트를 추가하고 중심.

라인

wordTf.width = wordTf.textWidth + 4; 

은 중요한 하나입니다. 텍스트를 설정하면 플래시가 텍스트의 너비를 계산할 수 있습니다. 이제이 텍스트 너비 (+4는 수정할 수없는 텍스트 필드의 텍스트 주위에 고정 된 패딩입니다)를 텍스트 필드의 너비로 설정하십시오.

+0

코드에서 실수가있었습니다. 이것은 마침내 작동해야합니다. 계산할 너비가 필요하지 않습니다. – DanielB

+0

괜찮습니다.하지만 xStartpoint는 여전히 partsWidth에 의해 계산되므로 단어 사이에 공백이 있습니다. 내가해야할 일은 서로 다른 크기의 텍스트 필드를 나란히 놓고 (서로 터치하여) 스테이지를 중심으로 배치하는 것입니다. – mustafa

+0

@mustafa : 정확히 내 코드에서 수행 한 작업입니다. 루프를 돌릴 지 모르겠습니다. 잠시 후에 루프를 사용하여 코드를 수정하겠습니다. – DanielB