2012-04-09 3 views
0

У меня был хороший внешний вид, но я не мог найти ничего, что бы решило мою проблему. Есть несколько сообщений, которые идут по правильной линии, но я не могу опустить голову, чтобы исправить проблему.Авторизовать текст в соответствии с шириной кнопки

Мне нужно автоматически изменить размер текста так, чтобы он не превышал ширину кнопки. Максимальная длина текста моего размера составляет 13 символов, пока он не станет слишком большим.

-

Программа начинается с динамически создавать несколько кнопок, наполняя их название и описание, приведенное в документе XML.

Чтобы добавить текст у меня есть этот код:

var tform:TextFormat = new TextFormat(); 
tform.size = 20; 
tform.font = "Arial"; 
tform.align = TextFormatAlign.CENTER; 
tform.color = 0xFFFFFF; 
tform.bold = true; 

var tfield:TextField = new TextField(); 
tfield.text = texttitle; 
tfield.width = button.width; 
tfield.x = 0; 
tfield.y = 30; 

tfield.setTextFormat(tform); 
addChild(tfield); 

Это позиционирует текст прямо в центре кнопки 30 пикселей от верхней части. Проблема, с которой я сталкиваюсь, заключается в том, как изменить размер шрифта, чтобы сохранить текст в поле.

-

Теперь, потому что я установить ширину до размера панели, я не вижу какой-либо очевидный способ перекручивания через, чтобы установить размер шрифта в соответствии с максимально допустимой шириной.

Я надеюсь, что все это имеет смысл, и я приветствую любые изменения, чтобы сделать код более эффективным, поскольку я относительно новичок в AS3 и Flash, и поэтому я все еще нахожусь на кривой обучения.

С уважением, Jon.

ответ

2

Я натыкался на эту проблему и решить ее с помощью цикла по настройке текста, пока он не подходит

что-то вдоль линий этого

while (tf.textwidth > button.width){ 
    myTextFormat.size = myTextFormat.size - 1; 
    tf.setTextFormat(myTextFormat); 
    tf.autoSize = "left"; 
} 
+0

@plemarquand - ХА! Я пропустил самую важную часть, спасибо за исправление – Daniel

Смежные вопросы