Um ein Textfeld zu erhalten, dessen Inhalt per Actionscript definiert wird, muss man ein Textfeld mit dem Textwerkzeug aufziehen und im Eigenschaftenfenster die Option dynamischer Text vergeben.

Unter Variable vergibt man einen Namen.

Im Aktionenfenster kann man nun die Aktion setVariable wählen und dort den Variablenname sowie den Inhalt definieren. Im Eigenschaftenfenster unter "Zeichen" gibt man an, ob und wie die Schriftart eingebettet werden soll. Das garantiert die Anzeige in gewünschter Schriftart auch wenn Sie auf dem Rechner nicht installiert ist.

Diese einfache Vorgehensweise wurde schon ausführlich unter dem Punkt Variable (variable.swf) erklärt.

info = "hier der Inhalt des Textfeldes mit Variablenname info.";

Seite 1

Eine andere Methode, welche mehr Möglichkeiten eröffnet, ist ein Textfeld zu erzeugen, welches im Eigenschaftenfenster einen Instanznamen zugewiesen bekommt. Somit erhalten wir ein Textobjekt, dem sich viele Eigenschaften per Actionscript zuweisen lassen.

Der Textinhalt wird durch die Eigenschaft text definiert.

In FlashMX findet man im Aktionenfenster die Eigenschaften für Textfelder unter: Objekte/ Film/ Textfield/ Eigenschaften

?????a??º?g"

Im Tipp Text aus einer externen Datei laden (textladen.swf),  wird der Text aus anderen Dateien in den Flashplayer geladen.

Auf den letzten 3 Seiten wird das Textfeld nicht manuell aufgezogen sondern per Actionscript erzeugt.

anzeige1.text = "hier der Inhalt des Textfeldes mit Instanzname anzeige1.";

Seite 2

Siehe die Aktionen der Buttons, welche die Eigenschaften des Textfeldes ändern.

Benutze folgende Zeichen für

Zeilenumbruch:

\r

Neuer Absatz:

\r\n

_root.anzeige2.border=false;

_root.anzeige2.border=true;

_root.anzeige2.borderColor=0x00ff00;

_root.anzeige2.background=false;

_root.anzeige2.background=true;

_root.anzeige2.textColor=0xffffff;

_root.anzeige2.backgroundColor=0x702121;

Seite 3

Damit man e?????a??º?g"in Textgfeld scrollen kann, geht man folgendermaßen vor. Man wählt es aus und wählt anschließend oben im Menue, unter Text die Option Rollbar.

Mit den Aktionen auf den Schaltflächen wird der Text eine Zeile rauf oder runter gescrollt.

Weitere Eigenschaften von Textfeldern werden in den Refernzen von Flash erklärt.

on (press) {

anzeige3.scroll = anzeige3.scroll-1;

}

Seite 4

on (press) {

anzeige3.scroll = anzeige3.scroll+1;

}

Die Buttons vergeben der globalen Variablen namens updown, jeweils einen Wert.

Im ersten Frame wird in der if Struktur abgefragt ob der Button-unten gedrückt wurde _global.updown=1. Ist das der Fall wird onEnterFrame nach unten gescrollt:

anzeige3.scroll = anzeige3.scroll+1;

Wenn der Button-oben gedrückt wurde, wird nach oben gescrollt.

Wichtig ist auch, dass die Variable updown, beim Loslassen der Buttons auf 0 gesetzt wird, damit keine der Bedingungen erfüllt ist.

Zum Thema Funktion siehe auch folgende Tipps:

on (press) {

_global.updown = -1;

}

on (release) {

_global.updown = 0;

}

Seite 5

on (press) {

_global.updown = 1;

}

on (release) {

_global.updown = 0;

}

_root.onEnterFrame = function() {

if (_global.updown==1) {

anzeige3.scroll = anzeige3.scroll+1;

} else if (_global.updown==-1) {

anzeige3.scroll = anzeige3.scroll-1;

}

};

Der gleiche Effekt auf andere Art. Wenn man beide Scripte vergleicht, wird deutlich, warum man im EventHandler release nochm?????a??º?g"als die onEnterFrame-Funktion aufrufen muss.

on (press) {

_root.onEnterFrame = function() {

anzeige3.scroll = anzeige3.scroll-1;

};

}

on (release) {

_root.onEnterFrame = function() {

anzeige3.scroll = anzeige3.scroll;

};

}

Seite 6

on (press) {

_root.onEnterFrame = function() {

anzeige3.scroll = anzeige3.scroll+1;

};

}

on (release) {

_root.onEnterFrame = function() {

anzeige3.scroll = anzeige3.scroll;

};

}

Hier wird der Text mit der viertel Bildlaufrate des Films gescrollt. y=y+0.25. Bei jeder ?????a??º?g"Ganzzahl scrollt der Text. Siehe auch Mathe Objekt.

Eine andere Möglichkeit wäre, die Bildlaufrate des Films herabzusetzen.

on (press) {

_root.onEnterFrame = function() {

if (y>0) {

y = y-0.25;

}

anzeige3.scroll = Math.floor(y);

};

}

on (release) {

_root.onEnterFrame = function() {

anzeige3.scroll = anzeige3.scroll;

};

}

on (press) {

_root.onEnterFrame = function() {

if (y<anzeige3.maxscroll) {

y = y+0.25;

}

anzeige3.scroll = Math.ceil(y);

};

}

on (release) {

_root.onEnterFrame = function() {

anzeige3.scroll = anzeige3.scroll;

};

}

Seite 7Seite 8

on (release) {

this.createTextField("meinTextfeld",1, 40, 35, 300, 20);

meinTextfeld.text = "Das Textfeld wurde per Actionscript erzeugt.";

}

Anstatt auf der Bühne manuell einen Textfeldrahmen aufzuziehen, kann ein Textfeld auch per Actionscript generiert werden und zwar mit der Methode: Movieclip.createTextField(). In diesem Beispiel wurde ein Textfeld mit Instanznamen "meinTextfeld" in Tiefe 1, mit den Koordinaten x=40, y=35, einer Weite von 300 und einer Höhe von 20 Pixeln erzeugt. Das Schlüsselwort this referiert auf den aktuellen Movieclip, in diesem Fall auf Hauptfilmzeitleiste _root. Siehe Tipp Filmsequenz Instanzen referenzieren

Wie ich schon im Tipp Duplicate Movieclip oder Attach Movie erklärt habe, braucht jede Instanz eine eigene Ebene oder Tiefe.

MovieClip.createTextField("Instanzname",Tiefe, x, y, W?????a??º?g"eite, Höhe;

on (release) {

meinTextfeld.removeTextField();

}

Seite 9

on (release) {

i = i+1;

this.createTextField("anzeige"+i,i,20*i,40,20,20);

set("varbl"+i, i);

_root["anzeige"+i].text=eval("varbl"+i);

}

Hier wird bei jedem Buttonklick eine Variable i um 1 erhöht. Dann wird ein Textfeld erzeugt, dann eine Variable mit Wert, anschließend wird dem Textfeld der Wert der Variablen zugewiesen. Mit dem zweiten Button unten, werden alle Variablen und Textfelder in einer

for Schleife gelöscht und der Variablen i der Wert 0 zugewiesen.

on (release) {

for (e=1; e<=i; e++) {

_root["anzeige"+e].removeTextField();

}

i = 0;

}

Seite 10

on (release) {

i = i+1;

this.createTextField("anzeige"+i,i,15*i,25,40,40);

_root["anzeige"+i].text=i;

_root["anzeige"+i].setTextFormat(nationalFormat);

_root["anzeige"+i].embedFonts=true;

}

Um eine Schriftart in ein Textfeld einzubetten, das mittels createTextfield erzeugt wurde,  muss man in der Bibliothek oben rechts "Neue Schriftart" anklicken. Einen Namen vergeben und die Schriftart auswählen. Anschließend wählt man das Symbol mit rechter Maustaste aus, wählt Verknüpfüng und gibt einen selbst gewählten Namen unter Bezeichner ein.  Weitere Optionen sind, "Export für Actionscript" und "in erstes Bild" exportieren".

Mit der Textformat Klasse wird ein neues TextFormat Objekt erzeugt. Dort wird der Eigenschaft font, der in der Bibliothek vergebenen Bezeichner zugewiesen. Außerdem habe ich hier noch die Schriftgröße mittels size bestimmt.

Das Textformat Objekt wird dem Textobjekt zugewiesen und die Eigenschaft embedFonts wird auf true gesetzt. Durch das Einbetten einer Schriftart wird die Größe des swf Films um ca. 30 kb erhöht. Weitere Argumente der textFormat Methode sind möglich, siehe Beispiele.

textFeld.setTextFormat(textFormat);

textFeld.setTextFormat(textFormat, Anfangsindex);

textFeld.setTextFormat(textFormat, Anfangsindex, Endindex);