Actionscrip3 текстовое поле размера конечного центрирования - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь получить некоторые слова из xml и поместить их рядом со сценой в центре сцены.Я добился этого с помощью кода ниже.Я автоматически изменяю размер текстового поля в соответствии с текстом внутри.Но на этот раз между словами возникает пробел.То, чего я добиваюсь, - это чтобы авторазмер и смежные слова были без пробелов между ними.Но я не смог решить проблему.Не могли бы вы помочь мне решить это.Заранее спасибо

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

1 Ответ

1 голос
/ 10 ноября 2011

Вы устанавливаете ширину явно с wordTf.width=partsWidth;.это заменит параметр автоматического изменения размера.Я бы использовал следующий код.

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;

является важным.После установки текста Flash может рассчитать ширину текста.Теперь установите эту ширину текста (+4 - фиксированный отступ вокруг текста в текстовом поле, которое вы не можете изменить) как ширину вашего текстового поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...