8.4 Textfelder dynamisch erzeugen
Tiefe |
Die Tiefe ist ein schwer zu verstehendes Konstrukt: Alle per ActionScript hinzugefügten Elemente liegen über den Ebenen der Zeitleiste auf verschiedenen Tiefen, die von 0 aufsteigend beziffert sind. Die Grundlagen hierzu lesen Sie in Kapitel 13, »Zeichnen und Zufall«. |
Bisher mussten Sie Textfelder mit dem Textwerkzeug aufziehen. Das ist völlig in Ordnung, Programmierer wünschen sich aber weitergehende Möglichkeiten. Wäre es nicht praktisch, ein Textfeld rein mit Programmierung zu erzeugen? Da dies auch Macromedia erkannt und mit Flash MX reagiert hat, wurde ActionScript die Methode createTextField() hinzugefügt. createTextField() ist eine Methode des MovieClip-Objekts. Mit dieser Methode wird an einen beliebigen MovieClip ein Textfeld angehängt. Die folgende Zeile verwendet die Methode mit dem aktuellen MovieClip:
this.createTextField("textfeld_txt", 1, 10, 10, 150, 50);
Um diese Zeile zu verstehen, müssen Sie die Parameter von createTextField(Name, Tiefe, x, y, Breite, Höhe) kennen. Folgende Bedeutungen verbergen sich dahinter:
- Name des Textfelds als String (in Anführungszeichen).
- Tiefe für die Position des Textfelds in der Hierarchie neu hinzugefügter Elemente. Mehr zur Tiefe in Kapitel 13, »Zeichnen und Zufall«.
- y-Koordinate für die Position ausgehend vom Registerpunkt des MovieClips.
- x-Koordinate für die Position ausgehend vom Registerpunkt des MovieClips.
- Breite des Textfelds als Wert in Pixel.
- Höhe des Textfelds als Wert in Pixel.
Wenn Sie ein Textfeld erstellt haben, müssen Sie es noch mit Inhalt füllen und je nach Bedarf mit Eigenschaften des TextField-Objekts sowie mit einem TextFormat-Objekt optisch anpassen. Hier ein einfaches Beispiel:
this.createTextField("textfeld_txt", 1, 10, 10, 150, 50); textfeld_txt.text = "Text im dynamisch generierten Textfeld"; textfeld_txt.multiline = true; textfeld_txt.wordWrap = true; textfeld_txt.border = true; var format_fmt:TextFormat = new TextFormat(); format_fmt.bold = true; format_fmt.size = 12; format_fmt.align = "right"; textfeld_txt.setTextFormat(format_fmt);
Der Code erzeugt zuerst ein neues Textfeld, setzt dann einige Optionen, die das Äußere des Textfelds verändern, und formatiert den Inhalt mittels eines TextFormat-Objekts. Sie finden die zugehörige Datei auf der CD-ROM unter dem Namen textfelder_dynamisch_ AS2.fla im Ordner Flash8 bzw. FlashMX2004 bzw. unter textfelder_dynamisch_AS1.fla im Ordner FlashMX.
Abbildung 8.16 Ein einfaches, dynamisch generiertes Textfeld
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.