Pastor Pixel Tipps Tutorial Anleitungen Hilfe

TextField / Textfelder dynamisch erstellen

TextField Klasse Referenzen
TextField CS4 Adobe Hilfe
Adobe Entwicklerhandbuch Text


Inhalt dieser Seite

Siehe auch FocusEvents und TextEvents auf der Seite Events


Die Es gibt viele Übereinstimmungen in Actionscript 3 und Actionscript 2 .

Es folgen die Eigenschaften der TextField Klasse

Siehe dazu auch die Referenzen, wo einiges ausführlicher erklärt wird.

Eigenschaft Info
 autoSize : String

Steuert die automatische Größenänderung und Ausrichtung von Textfeldern. siehe nächstes Kapitel mögliche Werte sind:

LEFT, RIGHT, CENTER, NONE

tf.autoSize=TextFieldAutoSize.LEFT;

 text : String Ein String, bei dem es sich um den aktuellen Text im Textfeld handelt.
 htmlText : String Enthält die HTML-Darstellung des Inhalts des Textfelds.
 styleSheet : StyleSheet Fügt ein Stylesheet an das Textfeld an.
 condenseWhite : Boolean Ein boolescher Wert, der angibt, ob zusätzliche Leerräume (beispielsweise Leerzeichen oder Zeilenumbrüche) aus einem Textfeld mit HTML-Text entfernt werden sollen.
 wordWrap : Boolean Ein boolescher Wert, der angibt, ob im Textfeld ein Zeilenumbruch durchgeführt wird.
 multiline : Boolean Gibt an, ob das Feld ein mehrzeiliges Textfeld ist. Das ist in erster Linie bei Texteingabefeldern von Bedeutung oder bei Textfelder mit htmlText.
 selectable : Boolean Ein boolescher Wert, der angibt, ob das Textfeld ausgewählt werden kann. siehe auch mouseEnabled
 background : Boolean Gibt an, ob das Textfeld einen gefüllten Hintergrund aufweist.
 backgroundColor : uint Gibt die Hintergrundfarbe des Textfelds an.
 border : Boolean Gibt an, ob das Textfeld umrahmt ist.
 borderColor : uint Gibt die Farbe des Textfeldrahmens an.
 textColor : uint Die Farbe des Textes in einem Textfeld (im Hexadezimalformat).
 textHeight : Number
[schreibgeschützt] Die Höhe des Texts in Pixel.
 textWidth : Number
[schreibgeschützt] Die Breite des Texts in Pixel.
 defaultTextFormat : flash.text:TextFormat Legt das Format fest, das auf neu eingefügten Text (z. B. von einem Benutzer eingegebener Text oder Text, der mit der replaceSelectedText()-Methode eingefügt wird) angewendet wird.
 embedFonts : Boolean Gibt an, ob bei der Wiedergabe eingebettete Schriftkonturen verwendet werden sollen.
 length : int
[schreibgeschützt] Die Anzahl der Zeichen in einem Textfeld.
 bottomScrollV : int
[schreibgeschützt] Eine Ganzzahl (Index mit Basis 1), die die unterste der im angegebenen Textfeld sichtbaren Zeilen angibt.
 maxScrollH : int
[schreibgeschützt] Der maximale Wert der Eigenschaft „scrollH“.
 maxScrollV : int
[schreibgeschützt] Der maximale Wert der Eigenschaft „scrollV“.
 scrollH : int Die aktuelle horizontale Bildlaufposition.
 scrollV : int Die vertikale Textposition in einem Textfeld.
mouseEnabled:Boolean Maus über dem Textfeld ist deaktiviert, so dass das darunterliegende Element anklickbar ist.
 mouseWheelEnabled : Boolean Ein boolescher Wert, der angibt, ob Flash Player für mehrzeilige Textfelder automatisch einen Bildlauf durchführt, wenn der Benutzer ein Textfeld anklickt und das Mausrad dreht.
 numLines : int
[schreibgeschützt] Gibt die Anzahl der Textzeilen in einem mehrzeiligen Textfeld an.
alwaysShowSelection : Boolean 

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

Wenn sich das Textfeld bei Einstellung "true" nicht im Fokus befindet, markiert Flash Player die Auswahl im Textfeld in grau. In den Referenzen befindet sich ein Beispiel. Der Standardwert ist false. Im folgendem Beispiel hat das erste Textfeld den Wert true.

 

 selectionBeginIndex : int
[schreibgeschützt] Der auf null basierende Zeichenindexwert des ersten Zeichens in der aktuellen Auswahl.
 selectionEndIndex : int
[schreibgeschützt] Der auf null basierende Indexwert des letzten Zeichens in der aktuellen Auswahl.
 caretIndex : int
[schreibgeschützt] Der Index der Position der Einfügemarke.
Texteingabe
 type : String

Der Typ des Textfelds, beispielsweise Texteingabe oder dynamisches Textfeld, in welches keine Texteingaben gemacht werden können. Der Standardwert ist dynamic.
tf.type = TextFieldType.INPUT;
tf.type = TextFieldType.DYNAMIC;

 maxChars : int Die von einem Benutzer festgelegte maximale Anzahl von Zeichen, die das Textfeld enthalten kann. Ein vordefinierter Text kann durchaus länger sein, siehe Beispiel.
tf.maxChars = 8;
 restrict : String

Gibt die Zeichen an, die ein Benutzer in das Textfeld eingeben kann.
Siehe Adobe Referenz
Wenn der Wert null ist können alle Zeichen eingesetzt werden. Bei einem leeren String können keine Zeichen eingesetzt werden. Der Bindestrich dient als "von bis" Zeichen.
myInput.restrict = "A-Z";
0-9 alle Zahlen
A-Z alle Großbuchstaben
a-z alle Kleinbuchstaben

Diese Zeichen ^ in dem String bedeutet, dass alle nachfolgenden Zeichen nicht akzeptiert werden und alle Zeichen die vor diesem Zeichen ^stehen akzeptiert werden. Im nochfolgendem Beispiel werden alle Großbuchstaben außer das große Q akzeptiert:
A-Z^Q

 displayAsPassword : Boolean Gibt an, ob es sich um ein Kennworttextfeld handelt. Anstatt der Zeichen werden Sternchen angezeigt.
 useRichTextClipboard : Boolean Gibt an, ob beim Kopieren und Einfügen auch die Textformatierung übernommen wird.
   
AntiAliasing / Rendering
 antiAliasType : String Der für dieses Textfeld verwendete Anti-Aliasing-Typ.
tf.antiAliasType = AntiAliasType.NORMAL;
tf.antiAliasType = AntiAliasType.ADVANCED;

 sharpness : Number Die Schärfe der Glyphenkanten in diesem Textfeld. Lässt sich nur beim Renderer FlashType nutzen:
tf1.antiAliasType = AntiAliasType.ADVANCED;
Werte von -400 bis 400 möglich
Diese Einstellungen kann man auch im Eigenschaftenfenster bei benutzerdefinierten AntiAliasing vornehmen.
Siehe auch thickness.
 thickness : Number Die Stärke der Glyphenkanten in diesem Textfeld. Lässt sich nur beim Renderer FlashType nutzen:
tf1.antiAliasType = AntiAliasType.ADVANCED;
Der Wert geht von -200 bis 200.
Diese Einstellungen kann man auch im Eigenschaftenfenster bei benutzerdefinierten AntiAliasing vornehmen.
Siehe auch sharpness
 gridFitType : String Die für dieses Textfeld verwendete Art der Rasteranpassung. Erhöht die Lesbarkeit bei kleinen Schriften, da die Ausrichtung der Glyphen auf ganze Pixel gesetzt werden. Man kann diese Eigenschaft nur bei FlashType Renderer einsetzen: tf1.antiAliasType = AntiAliasType.ADVANCED;
ft.gridFitType=GridFitType.NONE
ft.gridFitType=GridFitType.PIXEL
Beste Lesbarkeit für linksbündigen Text
ft.gridFitType=GridFitType.SUBPIXEL
Die Einstellung eignet sich oft für rechtsbündigen oder zentrierten dynamischen Text und ist manchmal eine praktische Alternative, wenn zwischen Animations- und Textqualität abzuwägen ist.

 

Methode Info
 appendText(newText:String):void  Hängt den vom Parameter „newText“ angegebenen String an das Ende des Texts im Textfeld an.
 replaceText(beginIndex:int, endIndex:int, newText:String):void  Ersetzt den Zeichenbereich, der durch die Parameter „beginIndex“ und „endIndex“ angegeben wird, durch den Inhalt des Parameters „newText“.
 replaceSelectedText(value:String):void  

Ersetzt die aktuelle Auswahl durch den Inhalt des Parameters „value“.

replaceSelectedText() funktioniert fast genauso wie replaceText(), nur dass man hier nicht Anfangs und Endindex bestimmt. Stattdessen muss der zu ersetzende Text ausgewählt sein. Das kann händisch oder per Funktion geschehen. setSelection(anfangIndex, endIndex). Außerdem muss das Textfeld den Focus haben oder alwaysShowSelection muss true sein.
myT.setSelection(5,10);
this.stage.focus = myT;
myT.replaceSelectedText("unsere");

 setSelection(beginIndex:int, endIndex:int):void  

Legt den durch die Indexwerte des ersten und letzten Zeichens (Parameter „beginIndex und „endIndex“) angegebenen Text als ausgewählt fest. Das Textfeld muss den Focus haben oder alwaysShowSelection ist true, damit man die Auswahl sieht.
myT.setSelection(5,10);
myT.alwaysShowSelection = true;

Es gibt keine Events, die eine Veränderung der Auswahl melden würden. Hier würde lediglich eine Überwachung des selectionBeginIndex und selectionEndIndex helfen.

 getCharBoundaries(charIndex:int):Rectangle  Gibt ein Rechteck zurück, das die Begrenzungsbox für das Zeichen darstellt.
 getCharIndexAtPoint(x:Number, y:Number):int  Gibt den auf null basierenden Indexwert des Zeichens an dem von den Parametern x und y angegebenen Punkt zurück.
 getFirstCharInParagraph(charIndex:int):int  Gibt anhand eines Zeichenindex den Index des ersten Zeichens im gleichen Absatz zurück.
 getImageReference(id:String):DisplayObject  Gibt einen DisplayObject-Verweis für die jeweilige ID, ein Bild oder eine SWF-Datei zurück, die bzw. das einem HTML-formatierten Textfeld über ein <img>-Tag hinzugefügt wurde.
 getLineIndexAtPoint(x:Number, y:Number):int  Gibt den auf null basierenden Indexwert des Zeichens an dem von den Parametern x und y angegebenen Punkt zurück.
 getLineIndexOfChar(charIndex:int):int  Gibt den auf null basierenden Indexwert der Zeile zurück, die das vom Parameter „charIndex“ angegebene Zeichen enthält.
 getLineLength(lineIndex:int):int  Gibt die Zeichenanzahl in einer bestimmten Textzeile zurück.
 getLineMetrics(lineIndex:int):flash.text:TextLineMetrics  Gibt metrische Informationen zu einer bestimmten Textzeile zurück.
 getLineOffset(lineIndex:int):int  Gibt den Zeichenindex des ersten Zeichens in der vom Parameter „lineIndex“ angegebenen Zeile zurück.
 getLineText(lineIndex:int):String  Gibt den Text der durch den Parameter „lineIndex“ angegebenen Zeile zurück.
 getParagraphLength(charIndex:int):int  Gibt anhand eines Zeichenindex die Länge des Absatzes mit dem angegebenen Zeichen zurück.
 getTextFormat(beginIndex:int = -1, endIndex:int = -1):flash.text:TextFormat  Gibt ein TextFormat-Objekt mit Formatierungsinformationen für den durch die Parameter „beginIndex“ und „endIndex“ angegebenen Textbereich zurück.
 setTextFormat(format:flash.text:TextFormat, beginIndex:int = -1, endIndex:int = -1):void  Weist dem angegebenen Text in einem Textfeld die mit dem Parameter „format“ angegebene Textformatierung zu.
 isFontCompatible(fontName:String, fontStyle:String):Boolean  [statisch] Gibt „true“ zurück, wenn eine eingebettete Schriftart mit dem angegebenen fontName und fontStyle verfügbar ist, wobei Font.fontType gleich flash.text.FontType.EMBEDDED ist.

Es folgen ein paar einfache Beispiele:

Das Textfeld wird standardmäßig auf eine Breite von 100 x 100 Pixel gesetzt.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

import flash.text.TextField;

var tf:TextField = new TextField();
tf.text="Das ist mein Textstring";
addChild(tf);

Automatischer Zeilenumbruch

Automatischer Zeilenumbruch wird mit wordWrap = true; erzeugt. Ein hard codierter Zeilenumbruch wird im Text mit \n erzeugt:

tf.text="alle meine \nEntchen";

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

import flash.text.TextField;

var tf:TextField = new TextField();
tf.text="Das ist mein Textstring";
tf.wordWrap = true;
addChild(tf);

Automatische Größenänderung

Im folgenden Beispiel haben wir ein Textfeld, welches sich automatisch verbreitert. Bedenke, dass hier wordWrap nicht auf true gestellt werden darf. LEFT bedeutet der linke Rand des Textfeldes bleibt an seiner definierten Stelle.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

import flash.text.TextField;

var tf:TextField = new TextField();
tf.text="Das ist mein Textstring, der wird jetzt mal ein bisschen verlängert.";
tf.border = true;
tf.x=10;
tf.y=10;
tf.autoSize = TextFieldAutoSize.LEFT;

addChild(tf);

Hier wurde autoSize auf RIGHT gesetzt. Wie man sieht, breitet sich das Textfeld nach Links aus und die rechte Kante bleibt, wo sie definiert ist. Das Textfeld liegt auf 10 Pixel, die Breite ist 250 Pixel, also liegt der rechte Rand des Textfeldes auf 260 Pixel.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

import flash.text.TextField;

var tf:TextField = new TextField();
tf.text="Das ist mein Textstring, der wird jetzt mal ein bisschen verlängert.";
tf.border = true;
tf.x=10;
tf.y=10;
tf.width=250;
tf.autoSize = TextFieldAutoSize.RIGHT;

addChild(tf);

Hier wurde lediglich ein hard codierter Zeilenumbruch eingefügt.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

import flash.text.TextField;

var tf:TextField = new TextField();
tf.text="Das ist mein Textstring,\nder wird jetzt mal ein bisschen verlängert.";
tf.border = true;
tf.x=10;
tf.y=10;
tf.width=250;
tf.autoSize = TextFieldAutoSize.RIGHT;

addChild(tf);

Textfeld, dass sich nach unten vergrößert.

Hierzu sind 2 Dinge nötig:
wordWrap muss auf true gestellt werden und
textFieldAutoSize muss etwas anderes als NONE bekommen.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

import flash.text.TextField;

var tf:TextField = new TextField();
tf.text="Das ist mein Textstring, der wird jetzt mal ein bisschen verlängert.";
tf.border = true;
tf.x=10;
tf.y=10;
tf.width=100;
tf.wordWrap = true;
tf.autoSize = TextFieldAutoSize.RIGHT;

addChild(tf);

multiline und Texteingabe

multiline ist vor allen Dingen bei Texteingabefeldern von Bedeutung. Denn ohne multiline=true; wäre keine mehrzeilige Texteingabe möglich. Gebe hier Text ein und drücke die Enter Taste für einen Zeilenumbruch.
Siehe auch Textinput

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

import flash.text.TextField;

var tf:TextField = new TextField();
tf.text="Texteingabe";
tf.type = TextFieldType.INPUT;
tf.multiline = true;

addChild(tf);

 

 

appendText() replaceText()

In AS2 wurde ein neuer Text folgendermaßen an einen bestehenden Text angehängt. Das funktioniert zwar immer noch, sollte aber aus Performance- Gründen nicht mehr gemacht werden:

tf.text="bla bla";
tf.text+="blu";

Stattdessen sollte man appendText und replaceText verwenden:

import flash.text.TextField;

var tf:TextField = new TextField();
tf.width=300;
addChild(tf);

tf.text="schönes Wetter";
trace(tf.text);//schönes Wetter
tf.text="Wetter";
trace(tf.text);//Wetter
tf.replaceText(0,0,"schlechtes ");
trace(tf.text);//schlechtes Wetter
tf.appendText(" heute");
trace(tf.text);//schlechtes Wetter heute
tf.replaceText(0,10, "schönes");
trace(tf.text);//schönes Wetter heute


replaceText(AnfangsIndex, EndIndex, String);

Das erste Zeichen ist 0. Wenn Anfangsindex und Endindex gleich sind, wird der Text an dieser Stelle eingesetzt und kein Zeichen ersetzt. replaceText() übernimmt das Format des Endindex. Wenn Anfangs und Endindex 0 sind, wird das Standardformat übernommen, Wenn Anfangs und Endindex gleich sind und größer als 0, wird das Format von Endindex -1 übernommen.

appendText(String);

Der Text wird an den vorhandenen angehängt. Es wird das Format des letzten Zeichens übernommen. Der vorhandene Text wird nicht neu formatiert.

Scroll Variablen

Das Textfeld hält einige Variablen für Scrolleigenschaften bereit. Siehe dazu das Beispiel. Siehe auch das Thema Event.SCROLL

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

Das Standardformat defaultTextFormat

Das Standardformat definiert man und weist es dem Textfeld zu, bevor man den Text zuweist.

Wenn keine anderen Formatierungen durch setTextFormat() zugewiesen wurden, wird jeder neu angehängte oder ersetzte Text in diesem Standardformat formatiert. Egal ob die Zuweisung durch Actionscript oder durch Usereingabe geschieht. Näheres zur TextFormat Klasse im nächsten Abschnitt.

import flash.text.TextFormat;
import flash.text.TextField;

var deFo:TextFormat = new TextFormat();
deFo.size=30;

var tf:TextField = new TextField();

tf.width=500;
tf.wordWrap = true;
tf.multiline = true;

tf.defaultTextFormat = deFo;

tf.text="alle meine Entchen ";
addChild(tf);

Würde man die letzten beiden Zeilen des vorigen Codebeispiels in der Reihenfolge tauschen, würde die Formatierung nicht zugewiesen.

FALSCH !!!!

tf.text="alle meine Entchen ";
tf.defaultTextFormat = deFo;

FALSCH !!!!

Formatierung TextFormat() Klasse

Hier werden Textfelder dynamisch erstellt und formatiert. Es gibt 3 Arten für die Formatierung, einmal über Html, über CSS und über die TextFormat Klasse. Im letzteren Fall wird für die Formatierung ein TextFormat Objekt instanziiert. Darin sind alle Formatierungen enthalten, wie Schriftart, Farbe, Größe, Ausrichtung etc. Diese Formatierung können dann einem TextFeld Objekt übergeben werden.

Beispiel textField1.swf

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen


var format:TextFormat = new TextFormat();
format.color = 0x336699;
format.size = 50;
format.align = TextFormatAlign.CENTER;
format.font = "Brush Script MT";
var myText:TextField = new TextField();


	myText.embedFonts = true;
	myText.autoSize = TextFieldAutoSize.CENTER;
	myText.antiAliasType = AntiAliasType.ADVANCED;
	myText.selectable = false;
	myText.mouseEnabled = true;
	myText.defaultTextFormat = format;
	myText.text="Hallo Welt";
	
	
addChild(myText);
myText.x=10;
myText.y=10;	


Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

Ein Textfeld welches sich nur nach unten hin vergrößert, braucht wordWrap=true und außerdem muss TextFieldAutoSize etwas anderes als NONE enthalten.

var tf:TextField= new TextField();
tf.wordWrap=true;
tf.width=400;
tf.autoSize=TextFieldAutoSize.LEFT;
tf.text="Hier muss man selbstverständlich noch mehr Text einfügen";
addChild(tf);

Hier noch ein paar weitere Eigenschaften von TextField und Textformat.


import flash.text.TextField;
import flash.text.TextFormat;

var myFormat:TextFormat = new TextFormat();
myFormat.bold=true;
myFormat.font="_sans";
myFormat.color=0x550066;
myFormat.italic=false;
myFormat.letterSpacing=2;
myFormat.size=15;
myFormat.leftMargin=20;
myFormat.rightMargin=20;
myFormat.align=TextFormatAlign.JUSTIFY;
//myFormat.blockIndent=30;
myFormat.indent=30;
myFormat.leading=20;

var linkFormat:TextFormat= new TextFormat();
linkFormat.url="http://www.on-design.de";
linkFormat.target="_blank";
linkFormat.underline=true;
linkFormat.color=0xff0000;

var tf:TextField= new TextField();
tf.wordWrap=true;
tf.width=400;
tf.autoSize=TextFieldAutoSize.LEFT;
tf.border=true;
tf.text="Hier kommt natürlich noch mehr Text rein";


tf.setTextFormat(myFormat);
tf.setTextFormat(linkFormat,5,10);
addChild(tf);

Zeichen formatieren

Es gibt folgende Character- Level- Format Variablen

color 24 bit integer mf.color=0xff663a; Farbwert
font Schriftartname oder _sans, _serif, _typewriter mf.font = "Verdana"

Kein selbstvergebener Name, sondern der Familienanme einer Truetype oder Opentype Schrift. Bei Geräteschriften kann man auch _sans, _serif oder _typewriter angeben
siehe eingebettete Schriften

bold boolean mf.bold = true; Bei eingebetteten Schriftarten muss für bold und italic eine extra Schriftenklasse erzeugt werden
italic boolean mf.italic = true;
kerning boolean, mf.kerning = true; Kerning ist ein geringerer Abstand bei bestimmten Buchstabenkombinationen z.B.: VA oder V A. Kerning ist nur bei eingebetteten Schriften und nicht bei allen Schriften möglich.
letterSpacing Pixel Wert mf.letterSpacing=5; Buchstabenabstand in Pixeln
size Points mf.size=30; Schriftgröße in Punkten, das entspricht Pixeln
underline boolean mf.underline=true; Unterstreichung
url String mf.url="home.htm"; Hypertext Link
target "_blank", "_top", "_self", "fenstername" mf.target="_blank"; Frame oder Window für Hypertext Link

 

Absätze formatieren Paragraph level format

Es gibt folgende Absatz Format Variablen

align left, right, center, justify myFormat.align=TextFormatAlign.JUSTIFY; horizontale Ausrichtung des Absatzes
blockIndent Wert in Pixeln myFormat.blockIndent = 30; Abstand des Absatz von der linken Kante des Textfeldes
bullet boolscher Wert myFormat.bullet = true; Punkte ( bullets) vor dem Absatz
indent Wert in Pixeln myFormat.indent = 20; Einrückung der ersten Zeile vom linken Rand
leftMargin Wert in Pixeln myFormat.leftMargin = 20; Einrückung vom linken Rand
rightMargin Wert in Pixeln myFormat.rightMargin = 20; Einrückung vom rechten Rand
leading Wert in Pixeln myFormat.leading = 20; Zeilenabstand
tabStops Array mit Pixelwerten myFormat.tabStops = [100, 200] Abstände von Tabulatoren, im Text kann man einen Tabulator mit \t definieren siehe Beispiel oben

Ein neuer Absatz bedeutet in Actionscript eine neue hardcodierte Zeile. Diese kann man im Text mit folgender Zeichenfolge definieren \n
Eine neue Zeile, die durch wordWrap=true und einer festen Breite des Textfeldes automatisch entsteht, wird nicht als Anfang eines neuen Absatz gedeutet.
Will man verschiedenen Absätzen unterschiedliche Format Instanzen zuweisen, sollte man das erste und letzte Zeichen des Absatzes als Parameter in setTextFormat() angeben.

myText.setTextFormat(myFormat, 200, 350);

Bei einem Textfeld welches sich in der Breite anpasst reicht es aus, für Absatzformatierungen nur das erste Zeichen eines Absatzes in setTextFormat() als Parameter einzugeben.

myText.setTextFormat(myFormat, 200);

Macht man das jedoch bei einem Textfeld mit fester Breite und wordWrap = true, würde die Formatierung auf eine neue Zeile, die durch wordWrap= true ensteht, nicht angewendet.

Mit der Eigenschaft getParagraphLength() kann man die Länge eines Absatzes bestimmen. Siehe folgendes Beispiel:

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

 

Tabulatoren programmieren tabStops

Das folgende Beispiel lässt sich beispielsweise bei der Anzeige von Highscorelisten einsetzen. Die Formateigenschaft tabStops erwartet ein Array mit Pixelwerten, welche die Abstände der Tabulatoren definieren. Im Text kann man einen Tab über die Zeichenfolge \t setzen.

Tipp Achte darauf dass erst der String, also der eigentliche Text und dann die Instanz des Textformats zugewiesen wird.

tx.text = "Michael Albers \tDortmund";
tx.setTextFormat(ft);

Mit TLF Text kann man Tabulatoren auch händisch im Lineal oben setzen. Einfach irgendwo ins Lineal klicken. Durch Doppelklick erscheinen weitere Optionen, wie beispielsweise Tabulatoren mit rechts oder links Ausrichtung. Außerdem kann man an beiden Seiten den Leerraum zuweisen. Man kann einen Tabulator löschen, indem man ihn nach unten aus dem Lineal heraus zieht.

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen

 

 

 

 

getTextFormat() Formateigenschaften abfragen

Mittels myTextfield.getTextFormat(beginIndex, endIndex) kann man Formateigenschaften einer Textstelle abfragen. Es wird ein Textformatobjekt zurückgegeben.

var neuesFormat:TextFormat = meinText.getTextFormat(0);

Wenn getTextFormat mit nur einem integer Argument aufgerufen wird oder wenn das zweite Argument um eins höher als das erste ist, wird das Format eines Buchstabens zurückgegeben.

Wenn getTextFormat() für mehrere Buchstaben aufgerufen wird, wird ein Textformatobjekt zurückgegeben, welches alle Formateigenschaften der enthaltenen Buchstaben enthält. Wenn ein spezifisches Format (z.B.: bold, italic, underline) nicht für alle enthaltenen Buchstaben gleich ist, bekommt die Formateigenschaft den Wert null.

Eingebettete Schriftart verwenden

Adobe Hilfe eingebettete Schriften

Adobe Artikel embedded Fonts

Es gibt

  1. eingebettete Schriftarten embedded Fonts, welche in der SWF-Datei mitgeliefert werden oder
  2. Geräteschriftarten device Fonts, welche auf dem System des Users installiert sind.

Außerdem kann man bei Geräteschriftarten "_sans", "_serif" oder "_typewriter" angeben. Dann wird eine serifenlose (Arial, Helvetica) eine Schriftart mit Serifen (Times) oder eine monospace Schriftart des lokalen Systems genommen.

Tipp Bedenke auch, das gedrehte oder verzerrte Schriften nur mit eingebetteten Schriftarten möglich sind.


Will man einem dynamischen Text eine Schriftart zuweisen, muss man zuvor eine Klasse dieser Schriftart in der Bibliothek erstellen. Das Procedere geht folgendermaßen:

  1. Klicke in der Bibliothek oben rechts auf die Optionen.
  2. Wähle: Neue Schriftart
  3. Wähle eine Schriftart aus und trage unter "Name:" einen passenden Namen für die Schriftart ein. Hier sind Leerzeichen erlaubt. Dieser Name hat für Actionscript keine Bedeutung, der ist nur Kosmetik. Wichtiger ist die Bezeichnung unter "Familie"
  4. Aktiviere: a) Export für Actionscript, b) in erstes Bild kopieren, Export in Bild 1
  5. Vergebe einen Klassennamen, ohne Leerzeichen und Sonderzeichen, nachfolgend "Klassenname" genannt.

Nun kann man diese Schriftart einem TextFormat Objekt zuweisen und zwar als Eigenschaft font. Gebe hier die Bezeichnung der Schriftart"Familie" als String ein, nicht den Klassennamen und nicht den selbst vergebenen Namen.
myFormat.font = "Brush Script MT";
Im Textfeld muss neben der Zuweisung des Formatobjektes auch die Eigenschaft embedFonts auf true gesetzt werden.
myTextfield.embedFonts = true;

nächste Seite

Startseite: www.pastorpixel.de