3 Textfelder

Thema:
Christian Hof's Variablen Tutorial
Description:
Variablen in allen Variationen
Keywords:
Flash, Set Variable, Dynamik, Interaktivität, Steuern, Filminstanz, Movie Clip, Level, Aktionen, Befehle
Author:
Christian Hof
Date:
04.01.2000
Doc-ID:
30-003
URL:
http://www.flashworker.de/tutorial/30/003.html
Version:
1.0
Änderungen:

Erstellung

Anforderungen:
Flash 4
Vorkenntnisse:
Flash Grundkenntnisse
Download:
--

1 Einleitung

2 Grundlagen

3 Textfelder
  Wie erstellt man ein Textfeld ?
  Ja und weiter ?
  Eigenschaften
  Die Rolle der Zeitleiste
  Textfelder können mehr...
  Zusammenfassung

4 Standardbefehle

5 The Matrix

6 Ausblicke


3 Textfelder

Was ist ein Textfeld ?
Abb.1: Toolbar in Flash 4
Abb.1: Toolbar in Flash 4

Ein Textfeld kann als ein kleines Datenfenster in Flash 4 angesehen werden. In diesem Datenfenster können Inhalte von Variablen angezeigt und sogar verändert werden. Da einem Textfeld somit zur Laufzeit noch gar nicht bekannt sein kann, welche Werte es darstellen wird, muss es mit einigen besonderen Eigenschaften ausgestattet sein. Wenn Sie eine ganz normale Textanzeige entwerfen, so weiss der Flash Compiler, welche Buchstaben benötigt werden, und bindet die Abbildungsgesetze für genau die Buchstaben in den Shockwave Film ein, die Sie verwendet haben. Da eine Variable aber ihren Inhalt ändern kann, müssen wir uns später darüber Gdanken machen, wie die Schriftgesetze ohne grossen Aufwand in das Shockwave-File hineinplaziert werden können.




Wie erzeugt man ein Textfeld ?

Ihnen dürfte sicher bekannt sein, wie man Text in einen Flash Film schreibt. Dafür muß in der Toolbar das Buchstabensymbol angeklickt werden. Unten, unter den Formatschaltflächen befindet sich jetzt ein weiterer kleiner Button, auf dem die Buchstaben ab stehen. Dieser Button macht aus einer Textanzeige ein Textfeld. Jetzt können Sie ein echtes, interaktives Textfeld erzeugen.
Es sei an dieser Stelle noch darauf hingewiesen, dass die Möglichkeiten der Textformatierung, also verschiedene Fonts oder Grössen wie auch Absätze bei Veränderung der Variableninhalte nicht mehr verfügbar sind. Es sollte also nur ein Font bzw. eine Farbe gewählt werden. Der Font kann zur Laufzeit nicht geändert werden, allerding gibt es Möglichkeiten, auf die Farbe Einfluss zu nehemen, allerdings bleibt das Textfeld immer nur einfarbig.



Ja und weiter ?

Wenn Sie jetzt ein Rechteck im Arbeitsbereich aufziehen, so werden Sie feststellen, dass im dadurch entstandenen Textfeld ein Cursor verfügbar ist, und das Textfeld trotz fehlenden Inhalts nicht verschwindet. Weiter sehen Sie einen kleinen Mover an der rechten unteren Ecke, während bei normaler Textanzeige dieser rechts oben sitzt.
Dieses Textfeld ist nun editierbar, was bedeutet, dass ein Benutzer hier Text eingeben kann. Der ausgewählte Font ist komplett in das SWF eingebunden, was sofort zu einer Vergrösserung des Filmes führt. Wir werden noch diskutieren, wie der Buchstabenumfang reduziert werden kann.
Abb.2: Textfeld in Flash 4
Abb.2: Textfeld in Flash 4

Bei einem Textfeld ist es nun wichtig, über seine Ausdehnungen zu sprechen. Da eine Variable kurze oder lange Inhalte repräsentieren kann, müssen auch hierfür Parameter justierbar sein.
Durch einen Klick mit der rechten Maustaste auf solch ein Textfeld können die Eigenschaften (Properties) nun verändert werden.



Eigenschaften
Abb.3: Textfeldeigenschaften
Abb.3: Textfeldeigenschaften

Oben schriebene Probleme können nun durch Justieren der Eigenschaften behoben werden. Folgende Optionen sind einstellbar:

Es sei hier nur kurz angesprochen, dass die Optionen Mehrzeilig und Zeilenumbruch wichtig für die Möglichkeiten des Textscrolling sind. Weiter können die Schriftkonturen (Font Outlines) eingebunden werden, was aber wohl in einem eigenen Tutorial über Textfelder genauer erläutert werden soll.
Die wichtigste Eigenschaft eines Textfeldes ist aber der Name, über den es angesprochen werden soll. Dieser Name wird dann automatisch als Variable initialisiert. Wenn also im nebenstehenden Beispile das Textfeld text heisst, so besitzt das Symbol, in dem dieses Textfeld plaziert ist, eine Variable mit diesem Namen. Liegt das Textfeld im Hauptfilm, so wird die Variable text im Hauptfilm angelegt. Durch Tippen von Text in das Textfeld selbst kann das Textfeld sofort mit einem Wert belegt werden, was einer Initialisierung mit Startwert gleichkommt.




Die Rolle der Zeitleiste
Eine Variable existiert vom Moment der Initialisierung an bis zur Zerstörung des Symbols, in dem die Variable liegt. Allerdings bedeutet Moment der Initialisierung nicht, dass die Variable automatisch mit der Erzeugung der Symbolinstanz initialisiert wird. Der Zeitpunkt der Initialisierung hängt davon ab, in welchem Bild der Zeitleiste die Variable erzeugt wird. Folgende Start-Codesequenz führt aber dennoch nicht zu einem Fehler:

Set Variable "sinndeslebens" = a * b
die Variable sinndeslebens trägt als Inhalt den Wert 0, und man kann davon ausgehen, dass a und b ebenfalls als Variablen mit dem Inhalt "" initialisiert worden sind. Derartiges ist in anderen Programmiersprachen übrigens nicht möglich. Interessant ist nun die Frage, was passiert, wenn ein Textfeld mit einem Ausgabewert in Bild 1 eines Filmes liegt, und die Variable gleichen Namens in einer Codesequenz in Bild 2 mit anderem Inhalt initialisiert wird. Es ist offensichtlich, dass Bild 2 die Einstellungen von Bild 1 überschreibt. Was passiert, wenn beides in Bild 1 passiert? Auch dann wird das Textfeld vom Codewert überschrieben. Dabei spielt es keine Rolle, wie Code und Textfeld ebenenmässig verteilt sind. Das bedeutet also, dass innerhalb eines Bildes das Actionscript höherwertiger ist als die grafischen Komponenten. Dennoch gilt, dass Actionscriptcode in Reihenfolge der Ebenen innerhalb eines Bildes abgearbeitet wird. Beachten Sie folgendes Beispiel:
Comment: Code in Ebene 1
Set Variable "begruessung" = "Hallo Welt"
Stop

Comment: Code in Ebene 2
Set Variable "begruessung" = "Hello World"
Obwohl hier eine Stop Anweisung in der zuerst abegearbeiteten Ebene liegt, wird die Ausführung des Stop bis ans Ende verschoben. Die Ausgabe wäre hier also "Hello World". Achten Sie deshalb darauf, Ihren Code immer in einem Bild zu ordnen, um den Überblick zu behalten. Wenn wir jetzt auch noch berücksichtigen, dass ein Symbol wieder einen eigenen Quellcode tragen kann, so erkennt man schnell, dass es wichtig ist, genau über die Rangfolge der Abarbeitung Bescheid zu wissen. Wir werden also den Stellenwert von Symbolen noch genauer analysieren müssen.




Textfelder können mehr...
Mir Hilfe des Befehls Trace kann der Inhalt einer Variablen im Output überwacht werden, wenn die Ausgabe auf den Ausdrucksmodus gestellt wird. Wie aber überwacht man eine Variable, wenn der Shockwave Film auf Interaktion mit anderen HTML Dokumenten geprüft werden soll? Es soll als Beispiel in einem Symbol calculator, das im Hautpfilm liegt, eingabeunabhängig ein Ergebnis namens value berechnet werden, das dann im Hauptfilm sichtbar sein soll (also nicht im Symbol caculator). Hierfür muß ein Textfeld im Hauptfilm nur den folgenden Namen tragen: calculator:value. Auf diese Weise kann also ein Textfeld gemäss den Zugriffsregeln von Tell Target jede Variable an jedem Ort anzeigen.





Zusammenfassung
Was haben wir also bis jetzt in Erfahrung gebracht?






Weiter