Die TextArea-Komponente (Textfeld) erweitert das native ActionScript-TextField-Objekt. Die TextArea-Komponente können Sie einsetzen, um Text anzuzeigen, aber auch um Text zu bearbeiten und, wenn die Eigenschaft
editable
auf
true
gesetzt ist, um eine Texteingabe aufzunehmen. Die Komponente kann mehrere Textzeilen anzeigen oder empfangen, lange Textzeilen werden umbrochen, wenn die Eigenschaft
wordWrap
auf
true
gesetzt ist. Anhand der Eigenschaft
restrict
können Sie die Anzahl der Zeichen einschränken, die ein Benutzer eingeben darf, und mit
maxChars
können Sie angeben, wieviel Zeichen ein Benutzer maximal eingeben darf. Ragt der Text über die horizontalen oder vertikalen Grenzen des Textbereichs hinaus, erscheint automatisch eine horizontale bzw. vertikale Bildlaufleiste, es sei denn, die damit verbundenen Eigenschaften
horizontalScrollPolicy
und
verticalScrollPolicy
wurden auf
off
gesetzt.
Sie können die TextArea-Komponente überall dort einsetzen, wo ein Textfeld mit mehreren Zeilen benötigt wird. Sie können die TextArea-Komponente beispielsweise für ein Kommentarfeld in einem Formular verwenden. Sie können einen Listener einrichten, mit dem überprüft wird, ob das Feld leer ist, wenn der Benutzer zum Verlassen des Felds die Tabulatortaste drückt. In diesem Fall kann der Listener beispielsweise die Fehlermeldung anzeigen, dass ein Kommentar in dem Feld eingegeben werden muss.
Wenn Sie ein Textfeld mit nur einer Zeile benötigen, verwenden Sie die TextInput-Komponente.
Um die Formatierung innerhalb der TextArea-Instanz zu ändern, können Sie mithilfe der Methode
setStyle()
die Eigenschaft
textFormat
ändern. Sie können eine TextArea-Komponente auch mit HTML-Tags formatieren. Dazu verwenden Sie in ActionScript die Eigenschaft
htmlText
und wenn Sie die Eigenschaft
displayAsPassword
auf
true
setzen, werden anstelle des Texts ausschließlich Sternchen angezeigt. Wenn Sie die Eigenschaft
condenseWhite
auf
true
setzen, entfernt Flash alle zusätzlichen Leerräume aufgrund von Leerzeichen, Zeilenumbrüchen, usw. Auf den Text, der sich bereits im Steuerelement befindet, hat dies keinen Einfluss.
Benutzerinteraktion mit der TextArea-Komponente
TextArea-Komponenten können in einer Anwendung aktiviert und deaktiviert werden. In deaktiviertem Zustand werden Eingaben über die Maus oder die Tastatur nicht angenommen. In aktiviertem Zustand gelten für dieses Objekt dieselben Fokus-, Auswahl- und Navigationsregeln wie für das ActionScript-Objekt „TextField“. Wenn eine TextArea-Instanz den Fokus hat, können Sie diese mithilfe der folgenden Tasten steuern:
Schlüssel
|
Beschreibung
|
Pfeiltasten
|
Versetzen die Einfügemarke innerhalb des Texts um je ein Zeichen nach oben, unten, links und rechts; vorausgesetzt, der Text ist bearbeitbar.
|
Bild-ab
|
Versetzt die Einfügemarke an das Ende des Texts; vorausgesetzt, der Text ist bearbeitbar.
|
Bild-auf
|
Versetzt die Einfügemarke an den Textanfang, wenn der Text bearbeitbar ist.
|
Umschalt+Tab
|
Bewegt den Fokus zum vorigen Objekt in der Tabulatorschleife.
|
Tab
|
Bewegt den Fokus zum nächsten Objekt in der Tabulatorschleife.
|
Weitere Informationen zum Steuern des Fokus finden Sie im Abschnitt zur FocusManager-Klasse im
ActionScript 3.0 Referenzhandbuch
für Flash Professional
und unter
Arbeiten mit dem FocusManager
.
Parameter der TextArea-Komponente
Die folgenden Authoring-Parameter können für jede Instanz der TextArea-Komponente im Eigenschaften- oder Komponenten-Inspektor festgelegt werden:
condenseWhite
,
editable
,
hortizontalScrollPolicy
,
maxChars
,
restrict
,
text
,
verticalScrollPolicy
und
wordwrap
. Jeder dieser Parameter verfügt über eine entsprechende ActionScript-Eigenschaft mit demselben Namen. Informationen zu den möglichen Werten für diese Parameter finden Sie im Abschnitt zur TextArea-Klasse im
ActionScript 3.0 Referenzhandbuch
für Flash Professional
.
Die Änderungen an den Parametern der einzelnen TextArea-Instanzen, die beim Authoring im Eigenschaften- oder Komponenteninspektor vorgenommen werden, werden jeweils in einer Live-Vorschau angezeigt. Wenn eine Bildlaufleiste benötigt wird, wird diese in der Vorschau zwar angezeigt, funktioniert jedoch nicht. Außerdem kann in der Live-Vorschau weder Text ausgewählt noch Text in der Komponenteninstanz auf der Bühne eingegeben werden.
Mithilfe von ActionScript können Sie diese und weitere Optionen für die TextArea-Komponente über ihre Eigenschaften, Methoden und Ereignisse steuern. Weitere Informationen finden Sie im Abschnitt zur TextArea-Klasse im
ActionScript 3.0 Referenzhandbuch
für Flash Professional
.
So erstellen Sie eine Anwendung mit der TextArea-Komponente
In der folgenden Anleitung wird erläutert, wie beim Authoring eine TextArea-Komponente in eine Anwendung eingefügt wird. Im Beispiel wird die Ereignisprozedur
focusOut
für die TextArea-Instanz eingerichtet. Die Prozedur überprüft, ob der Benutzer etwas in das Textfeld eingegeben hat, bevor der Fokus auf einen anderen Teil der Benutzeroberfläche gelegt wird.
-
Erstellen Sie ein neues Flash-Dokument (ActionScript 3.0).
-
Ziehen Sie eine TextArea-Komponente vom Bedienfeld „Komponenten“ auf die Bühne und nennen Sie die Instanz
aTa
. Übernehmen Sie für alle Parameter die Standardeinstellungen.
-
Ziehen Sie eine zweite TextArea-Komponente aus dem Bedienfeld „Komponenten“ auf die Bühne, platzieren Sie sie unter der ersten und nennen Sie die Instanz
bTa
. Übernehmen Sie für alle Parameter die Standardeinstellungen.
-
Öffnen Sie das Bedienfeld „Aktionen“, wählen Sie in der Hauptzeitleiste Bild 1 aus und geben Sie den folgenden ActionScript-Code ein:
import flash.events.FocusEvent;
aTa.restrict = "a-z,'\" \"";
aTa.addEventListener(Event.CHANGE,changeHandler);
aTa.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, k_m_fHandler);
aTa.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, k_m_fHandler);
function changeHandler(ch_evt:Event):void {
bTa.text = aTa.text;
}
function k_m_fHandler(kmf_event:FocusEvent):void {
kmf_event.preventDefault();
}
In diesem Beispiel werden die im Textbereich
aTa
zulässigen Zeichen auf Kleinbuchstaben, das Komma, das Hochkomma (Apostroph) und Leerzeichen beschränkt. Zudem werden zum Textbereich
aTa
Ereignisprozeduren für die Ereignisse
change
,
KEY_FOCUS_CHANGE
und
MOUSE_FOCUS_CHANGE
eingerichtet. Die Funktion
changeHandler()
bewirkt, dass der Text, der in das Textfeld
aTa
eingegeben wird, automatisch im Textfeld
bTa
angezeigt wird, indem
aTa.text
bei jedem
change
-Ereignis
bTa.text
zugewiesen wird. Die Funktion
k_m_fHandler()
für die Ereignisse
KEY_FOCUS_CHANGE
und
MOUSE_FOCUS_CHANGE
verhindert, dass der Benutzer die Tabulatortaste drücken kann, um den Fokus auf das nächste Steuerelement zu setzen, ohne vorher Text einzugeben. Dies wird erreicht, indem das Standardverhalten verhindert wird.
-
Wählen Sie „Steuerung“ > „Film testen“.
Wenn Sie die Tabulatortaste drücken, um den Fokus in den zweiten Textbereich zu setzen, ohne Text einzugeben, wird eine Fehlermeldung angezeigt und der Fokus kehrt zurück auf den ersten Textbereich. Während Sie in den ersten Textbereich Text eingeben, können Sie sehen, dass er im zweiten Textbereich dupliziert wird.
Erstellen einer TextArea-Instanz mithilfe von ActionScript-Code
Im folgenden Beispiel wird mithilfe von ActionScript-Code eine TextArea-Komponente erstellt. Die Eigenschaft
condenseWhite
wird auf
true
gesetzt, um Leerräume zu vermeiden, und der Eigenschaft
htmlText
wird Text zugewiesen, um die HTML-Formatierungsattribute nutzen zu können.
-
Erstellen Sie ein neues Flash-Dokument (ActionScript 3.0).
-
Ziehen Sie eine TextArea-Komponente in das Bedienfeld „Bibliothek“.
-
Öffnen Sie das Bedienfeld „Aktionen“, wählen Sie in der Hauptzeitleiste Bild 1 aus und geben Sie den folgenden ActionScript-Code ein:
import fl.controls.TextArea;
var aTa:TextArea = new TextArea();
aTa.move(100,100);
aTa.setSize(200, 200);
aTa.condenseWhite = true;
aTa.htmlText = '<b>Lorem ipsum dolor</b> sit amet, consectetuer adipiscing elit. <u>Vivamus quis nisl vel tortor nonummy vulputate.</u> Quisque sit amet eros sed purus euismod tempor. Morbi tempor. <font color="#FF0000">Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.</font> Curabitur diam. Suspendisse at purus in ipsum volutpat viverra. Nulla pellentesque libero id libero.';
addChild(aTa);
In diesem Beispiel wird die Eigenschaft
htmlText
verwendet, um einen Textblock mit HTML-Tags für für Fettsatz und Unterstreichung auszuzeichnen und im Textbereich
a_ta
anzuzeigen. In diesem Beispiel wird zudem die Eigenschaft
condenseWhite
auf
true
gesetzt, um Leerräume innerhalb des Textblocks auf ein einzelnes Leerzeichen zu reduzieren. Die Methode
setSize()
stellt die Höhe und Breite des Textbereichs ein und die Methode
move()
seine Position. Die Methode
addChild()
schließlich, platziert die TextArea-Instanz auf der Bühne.
-
Wählen Sie „Steuerung“ > „Film testen“.
|
|
|