Ich habe ein Quiz-Spiel mit einer Cartoon-Frage-Blase gebaut. Die Blase wird an die Länge der Frage angepasst. Ich möchte ein Änderungsereignis in der dynamischen Textbox ändern, um eine Funktion aufzurufen, die die Größe der Fragenblase ändert.AS3 Textbox Change Event Nicht feuernd
Das Änderungsereignis wird jedoch nie aufgerufen, wenn mein Textfeldwert dynamisch aus Code geändert wird.
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;
}
Ich möchte das Änderungsereignis verwenden, da es mehrere Orte in meinem Code sind, die question_txt eingestellt werden können. Wie kann ich das Textfeld veranlassen, das Änderungsereignis auszulösen?
Gibt es auch eine Möglichkeit, die Anzahl der Zeilen in Frage_txt zu zählen, um die Höhe von textBubble_mc genauer festzulegen?
Ich habe am Ende nur eine Funktion aufgerufen, wie Sie in Ihrem Beispielcode angegeben haben. Für die zweite Frage möchte ich die Höhe Eigenschaft des Textfelds verwenden, aber es wird nicht automatisch die Größe geändert. Ich habe ein dynamisches Textfeld auf der Bühne und wenn das Textfeld zu klein ist, wird Text abgeschnitten. Ich sehe nichts in Flash, um die Textbox skalierbar zu machen. Ich werde die As3-Bibliothek überprüfen. Wissen Sie, wie Sie eine Textbox auf die Länge des Textes skalierbar machen können. – Bryan
Ich habe es. question_txt.autoSize = TextFieldAutoSize.CENTER; Danke Fenomas! – Bryan
Das ist nett, aber Sie können vorhandene Event.CHANGE-Handler nutzen, indem Sie question_txt.dispatchEvent aufrufen (new Event (Event.CHANGE)); – Triynko