Я построил игру викторины с пузырьком вопроса. Длина пузырька зависит от длины вопроса. Я хочу, чтобы событие изменения в динамическом текстовом поле вызывало функцию, которая меняет размер пузыря вопроса.AS3 Textbox Change Event Not Firing
Однако событие изменения никогда не вызывается, когда значение моего текстового поля динамически изменяется из кода.
question_txt.addEventListener(Event.CHANGE, setTextBubbleSize);
function setTextBubbleSize(event:Event):void
{
trace("QUESTION TEXT CHANGED");
textBubble_mc.height = 30 + question_txt.text.length * 1.2;
if (textBubble_mc.height > 170) textBubble_mc.height = 170;
question_txt.y = textBubble_mc.y - textBubble_mc.height/6 + 10;
}
Я хочу использовать событие изменения, потому что в моем коде есть несколько мест, которые могут задавать question_txt. Как я могу заставить текстовое поле активировать событие изменения?
Кроме того, есть ли способ подсчитать количество строк в вопросе_txt, чтобы более точно установить высоту textBubble_mc?
В итоге я просто вызвал функцию, указанную в вашем примере кода. Для второго вопроса я хотел бы использовать свойство высоты текстового поля, но оно не изменяется автоматически. У меня есть динамическое текстовое поле на сцене, и если текстовое поле слишком маленькое, текст отключается. Я не вижу ничего в flash, чтобы сделать текстовое поле изменчивым. Я проверю библиотеку as3. Вы знаете, как сделать текстовое поле изменяемым по размеру текста. – Bryan
Я понял. question_txt.autoSize = TextFieldAutoSize.CENTER; Спасибо феномам! – Bryan
Это хорошо, но вы можете использовать существующие обработчики Event.CHANGE, вызывая question_txt.dispatchEvent (новое событие (Event.CHANGE)); – Triynko