Да, как прокомментировал Дэвид, TextField
отправляет события CHANGE только тогда, когда они редактируются пользовательским вводом - фактически, это обычно верно для большинства компонентов. Причина, конечно, в том, что если вы попытаетесь вручную изменить значение поля в вашем обработчике «изменения», вы создадите рекурсивный цикл событий, из которого вам придется вручную определить выход.
То, что вы хотите сделать, это создать функцию-обёртку, например:
function setQuestionText( s:String ):void
{
question_txt.text = s;
setTextBubbleSize();
}
Что касается вашего другого вопроса, нет никакой причины оценивать высоту текстового поля на основе количества строк или символов - просто установите свойство text
, и вы можете немедленно запросить height
текстового поля. Он будет точно отражать новую высоту поля, и если вы измените ширину поля, высота будет немедленно обновлена и т. Д.
Или, если вам нужно узнать какие-либо подробные сведения о размере текстового поля, вы всегда можете использовать TextExtent .