flash.textTextExtent Die TextExtent-Klasse enthält Informationen über die Ausmaße von Text innerhalb eines Textfelds.Object Die TextExtent-Klasse enthält Informationen über die Ausmaße von Text innerhalb eines Textfelds. Objekte dieser Klasse werden von der TextFormat.getTextExtent-Methode zurückgegeben. TextExtentwidthNumberheightNumbertextFieldWidthNumbertextFieldHeightNumberascentNumberdescentNumberascentNumberdescentNumberheightNumbertextFieldHeightNumbertextFieldWidthNumberwidthNumberCSMSettings Die CSMSettings-Klasse enthält Eigenschaften für CSM (Continuous Stroke Modulation) bei Verwendung der TextRenderer.setAdvancedAntiAliasingTable()-Methode.Object Die CSMSettings-Klasse enthält Eigenschaften für CSM (Continuous Stroke Modulation) bei Verwendung der Methode TextRenderer.setAdvancedAntiAliasingTable(). CSM ist die kontinuierliche Modulation von Strichstärke und Kantenschärfe. TextRenderer.setAdvancedAntiAliasingTable()CSMSettings Erstellt ein neues CSMSettings-Objekt, das Strichwerte für individuelle Anti-Aliasing-Einstellungen enthält.fontSizeNumberDie Größe in Pixel, für die die Einstellungen gelten. insideCutoffNumberDer obere Schwellenwert, oberhalb dessen die Dichte auf den Höchstwert (z. B. 255) gesetzt wird. outsideCutoffNumberDer untere Schwellenwert, unterhalb dessen die Dichte auf 0 gesetzt wird. Erstellt ein neues CSMSettings-Objekt, das Strichwerte für individuelle Anti-Aliasing-Einstellungen enthält. fontSize Die Größe in Pixel, für die die Einstellungen gelten.Number Die Größe in Pixel, für die die Einstellungen gelten.

Das an die setAdvancedAntiAliasingTable()-Methode übergebene Array advancedAntiAliasingTable kann mehrere Einträge für CSM-Einstellungen zu verschiedenen Schriftgrößen enthalten. Mit dieser Eigenschaft können Sie die Schriftgröße zusammen mit den anderen Einstellungen bestimmen.

TextRenderer.setAdvancedAntiAliasingTable()
insideCutoff Der obere Schwellenwert, oberhalb dessen die Dichte auf den Höchstwert (z. B. 255) gesetzt wird.Number Der obere Schwellenwert, oberhalb dessen die Dichte auf den Höchstwert (z. B. 255) gesetzt wird. TextRenderer.setAdvancedAntiAliasingTable()outsideCutoff Der untere Schwellenwert, unterhalb dessen die Dichte auf 0 gesetzt wird.Number Der untere Schwellenwert, unterhalb dessen die Dichte auf 0 gesetzt wird. TextRenderer.setAdvancedAntiAliasingTable()
TextColorType Die TextColorType-Klasse enthält Farbwerte für die flash.text.TextRenderer-Klasse.Object Die TextColorType-Klasse enthält Farbwerte für die flash.text.TextRenderer-Klasse. flash.text.TextRendererDARK_COLOR Wird im Parameter „colorType“ der Methode „setAdvancedAntiAliasingTable()“ verwendet.Bob Pappas darkString Wird im Parameter colorType der Methode setAdvancedAntiAliasingTable() verwendet. Verwenden Sie die Syntax TextColorType.DARK_COLOR. flash.text.TextRenderer.setAdvancedAntiAliasingTable()LIGHT_COLOR Wird im Parameter „colorType“ der Methode „setAdvancedAntiAliasingTable()“ verwendet.lightString Wird im Parameter colorType der Methode setAdvancedAntiAliasingTable() verwendet. Verwenden Sie die Syntax TextColorType.LIGHT_COLOR. flash.text.TextRenderer.setAdvancedAntiAliasingTable()GridFitType Mit der GridFitType-Klasse werden Werte für die Rasteranpassung in der TextField-Klasse definiert.Object Mit der GridFitType-Klasse werden Werte für die Rasteranpassung in der TextField-Klasse definiert. flash.text.TextFieldNONE Hiermit werden keine Einstellungen für die Rasteranpassung vorgenommen.Bob Pappas noneString Hiermit werden keine Einstellungen für die Rasteranpassung vorgenommen. Horizontale und vertikale Linien in den Glyphen werden nicht am Pixelraster ausgerichtet. Diese Konstante wird zur Einstellung der Eigenschaft gridFitType in der TextField-Klasse verwendet. Diese Einstellung eignet sich oft für Animationen oder für große Schriften. Verwenden Sie die Syntax GridFitType.NONE. flash.text.TextField.gridFitTypePIXEL Passt breite horizontale und vertikale Linien an das Pixelraster an.Bob Pappas pixelString Passt breite horizontale und vertikale Linien an das Pixelraster an. Diese Konstante wird zur Einstellung der Eigenschaft gridFitType in der TextField-Klasse verwendet. Diese Einstellung funktioniert nur bei linksbündigen Textfeldern und funktioniert wie die Konstante GridFitType.SUBPIXEL bei statischem Text. Diese Einstellung bietet im Allgemeinen die beste Lesbarkeit für linksbündigen Text. Verwenden Sie die Syntax GridFitType.PIXEL. flash.text.TextField.gridFitTypeSUBPIXEL Passt breite horizontale und vertikale Linien an das Subpixel-Raster von LCD-Monitoren an.Bob Pappas subpixelString Passt breite horizontale und vertikale Linien an das Subpixel-Raster von LCD-Monitoren an. (Tatsächlich sind die Pixel auf einem LCD-Monitor Rot, Grün und Blau.) Diese Einstellung eignet sich oft gut für rechtsbündigen oder zentrierten dynamischen Text und ist manchmal eine praktische Alternative, wenn zwischen Animations- und Textqualität abzuwägen ist. Diese Konstante wird zur Einstellung der Eigenschaft gridFitType in der TextField-Klasse verwendet. Verwenden Sie die Syntax GridFitType.SUBPIXEL. flash.text.TextField.gridFitTypeStaticText Diese Klasse steht für StaticText-Objekte in der Anzeigeliste.flash.display:DisplayObject Diese Klasse steht für StaticText-Objekte in der Anzeigeliste. Sie können mit ActionScript keine StaticText-Objekte erstellen. StaticText-Objekte können nur mit dem Authoring-Tool erstellt werden. Beim Versuch, ein StaticText-Objekt zu erstellen, wird ein ArgumentError erzeugt.

Um einen Verweis auf ein bestehendes statisches Textfeld in ActionScript 3.0 zu erzeugen, können Sie die Elemente in der Anzeigeliste durchlaufen. Im folgenden Ausschnitt wird beispielsweise geprüft, ob die Anzeigeliste ein statisches Textfeld enthält, welches anschließend ggf. einer Variablen zugewiesen wird:

var i:uint; for (i = 0; i < this.numChildren; i++) { var displayitem:DisplayObject = this.getChildAt(i); if (displayitem instanceof StaticText) { trace("a static text field is item " + i + " on the display list"); var myFieldLabel:StaticText = StaticText(displayitem); trace("and contains the text: " + myFieldLabel.text); } }
text Gibt den aktuellen Text im statischen Textfeld zurück.String Gibt den aktuellen Text im statischen Textfeld zurück. Mit dem Authoring-Tool können mehrere Textfeldobjekte, die den vollständigen Text umfassen, exportiert werden. Bei vertikalem Text wird beispielsweise ein Textfeld pro Zeichen erstellt.
TextField Die TextField-Klasse dient zum Erstellen von Anzeigeobjekten für die Texteingabe und -anzeige.Die TextField-Klasse dient zum Erstellen von Anzeigeobjekten für die Texteingabe und -anzeige. flash.display:InteractiveObject Die TextField-Klasse dient zum Erstellen von Anzeigeobjekten für die Texteingabe und -anzeige. Mit der TextField-Klasse können Sie Text-Rendering auf niedriger Ebene durchführen. In Flex verwenden Sie jedoch normalerweise die Steuerelemente „Label“, „Text“, „TextArea“ und „TextInput“ zur Textverarbeitung. Sie können einem Textfeld im Eigenschafteninspektor einen Instanznamen zuweisen und es mit den Methoden und Eigenschaften der TextField-Klasse per ActionScript bearbeiten. TextField-Instanznamen erscheinen im Film-Explorer und im Dialogfeld „Zielpfad einfügen“ des Aktionenbedienfelds.

Verwenden Sie zur dynamischen Erstellung eines Textfelds den Konstruktor TextField().

Mit den Methoden der TextField-Klasse können Sie Text in dynamischen Textfeldern oder Eingabetextfeldern, die Sie beim Authoring oder zur Laufzeit erstellen, festlegen, auswählen und ändern.

ActionScript bietet mehrere Möglichkeiten, Text zur Laufzeit zu formatieren. Mit der TextFormat-Klasse können Sie die Zeichen- und Absatzformatierung für TextField-Objekte festlegen. Sie können mit der Eigenschaft TextField.styleSheet und der StyleSheet-Klasse Cascading Style Sheets (CSS)-Stile auf Textfelder anwenden. Über CSS können integrierte HTML-Tags geändert, neue Formatierungstags definiert oder Stile angewendet werden. Sie können HTML-formatierten Text, der optional CSS-Stile verwendet, direkt einem Textfeld zuweisen. HTML-Text, den Sie einem Textfeld zuweisen, kann eingebettete Medien (Movieclips, SWF-, GIF-, PNG- und JPEG-Dateien) enthalten. Der Text umgibt die eingebetteten Medien. Dies ist mit der Art vergleichbar, in der Text in einem Webbrowser die in einem HTML-Dokument eingebetteten Medien umgibt.

Flash Player unterstützt einige HTML-Tags zum Formatieren von Text. Eine Liste der unterstützten HTML-Tags finden Sie in der Beschreibung der Eigenschaft htmlText.

Beim folgenden Beispiel wird die Klasse TextFieldExample zur Anzeige einer Textmeldung verwendet. Dies wird in den folgenden Schritten erreicht:
  1. Es wird eine label-Eigenschaft vom Typ „TextField“ erstellt.
  2. Der Klassenkonstruktor ruft die Funktion configureLabel() auf.
  3. Mit der Methode configureLabel() wird zuerst ein neues TextField-Objekt erstellt, das anschließend der Eigenschaft label zugewiesen wird. Danach werden die Parameter wie folgt eingestellt:
    • Textfeld links ausrichten.
    • Hintergrundfüllung aktivieren.
    • Rahmen aktivieren.
  4. Mit der Methode configureLabel() wird die Variable format erstellt und einer neuen TextFormat-Instanz mit den folgenden Parametern zugewiesen:
    • Schriftart = Verdana
    • Schriftfarbe = reines Rot
    • Schriftgröße = 10
    • Unterstreichung = true
  5. Die Eigenschaft defaultTextFormat des Textfelds label ist auf format gesetzt, und die label-Instanz wird der Anzeigeliste hinzugefügt. In dieser wird zuerst ein Textfeld ohne Text angezeigt.
  6. Der Konstruktor setzt den Text des label-Textfelds auf "Hello world and welcome to the show." fest, indem er die setLabel()-Methode aufruft.
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class TextFieldExample extends Sprite { private var label:TextField; private var labelText:String = "Hello world and welcome to the show."; public function TextFieldExample() { configureLabel(); setLabel(labelText); } public function setLabel(str:String):void { label.text = str; } private function configureLabel():void { label = new TextField(); label.autoSize = TextFieldAutoSize.LEFT; label.background = true; label.border = true; var format:TextFormat = new TextFormat(); format.font = "Verdana"; format.color = 0xFF0000; format.size = 10; format.underline = true; label.defaultTextFormat = format; addChild(label); } } }
flash.text.TextFormatflash.text.StyleSheethtmlTexttextInteractionModeChange Flash Player setzt das textInteractionModeChange-Ereignis ab, wenn ein Benutzer den Interaktionsmodus eines Textfeldes ändert.flash.events.Event Flash Player setzt das textInteractionModeChange-Ereignis ab, wenn ein Benutzer den Interaktionsmodus eines Textfeldes ändert. Unter Android ist es zum Beispiel möglich, mithilfe von Kontextmenüoptionen zwischen dem NORMAL-Modus und dem SELECTION-Modus zu wechseln textInput Flash Player löst das textInput-Ereignis aus, wenn ein Benutzer ein oder mehr Textzeichen eingibt.flash.events.TextEvent.TEXT_INPUTflash.events.TextEvent Flash Player löst das Ereignis textInput aus, wenn ein Benutzer ein oder mehr Textzeichen eingibt. Dieses Ereignis kann durch verschiedene Texteingabemethoden ausgelöst werden, z. B. die Standardtastatur, Eingabemethodeneditoren (Input Method Editors, IMEs), Spracherkennungssysteme oder das Einfügen von Text ohne Formatierungs- oder Stilinformationen. Das folgende Beispiel definiert zwei TextField-Objekte: das erste TextField-Objekt ist ein Eingabetextfeld, das zweite ein dynamisches Textfeld. Wenn Sie Textzeichen in das erste Textfeld eingeben, wird das textInput-Ereignis ausgelöst, die textInputHandler()-Prozedur aufgerufen und die Zeichen werden im zweiten Textfeld angezeigt. Wenn Sie einen Textblock in das Eingabefeld einfügen, kopiert die Ereignisprozedur den ganzen Block in das andere Feld. package { import flash.display.Sprite; import flash.text.*; import flash.events.Event; import flash.events.TextEvent; import flash.events.MouseEvent; public class TextInputExample extends Sprite { private var myTextBox1:TextField = new TextField(); private var myTextBox2:TextField = new TextField(); public function TextInputExample() { myTextBox1.type = TextFieldType.INPUT; myTextBox1.width = 200; myTextBox1.height = 20; myTextBox1.background = true; myTextBox1.border = true; myTextBox2.x=220; addChild(myTextBox1); addChild(myTextBox2); myTextBox1.addEventListener(TextEvent.TEXT_INPUT,textInputHandler); } public function textInputHandler(event:TextEvent):void { myTextBox2.text=event.text; } } } scroll Von einem TextField-Objekt ausgelöst, nachdem der Benutzer einen Bildlauf durchgeführt hat.flash.events.Event.SCROLLflash.events.Event Von einem TextField-Objekt ausgelöst, nachdem der Benutzer einen Bildlauf durchgeführt hat. Das folgende Beispiel definiert zwei TextField-Objekte: Das erste TextField-Objekt hat zwei verknüpfte Ereignisprozeduren: Wenn Sie mit der Maus in dieses erste Textfeld klicken, wird das mouseDown-Ereignis ausgelöst und die verknüpfte mouseDownScroll-Prozedur aufgerufen. Die mouseDownScroll()-Prozedur führt dazu, dass im Feld ein Bildlauf durchgeführt wird. Danach wird das scroll-Ereignis ausgelöst und die verknüpfte scrollHandler()-Prozedur aktualisiert das zweite Textfeld, um die aktuelle Bildlaufposition anzuzeigen. package { import flash.display.Sprite; import flash.text.*; import flash.events.Event; import flash.events.TextEvent; import flash.events.MouseEvent; public class TextScrollExample extends Sprite { private var myTextBox1:TextField = new TextField(); private var myTextBox2:TextField = new TextField(); private var myText:String = "Hello world and welcome to the show. It's really nice to meet you. Take your coat off and stay a while. OK, show is over. Hope you had fun. You can go home now. Don't forget to tip your waiter. There are mints in the bowl by the door. Thank you. Please come again."; public function TextScrollExample() { myTextBox1.text = myText; myTextBox1.width = 200; myTextBox1.height = 50; myTextBox1.multiline = true; myTextBox1.wordWrap = true; myTextBox1.background = true; myTextBox1.border = true; myTextBox2.x=220; myTextBox2.text="scrolled to line: " + myTextBox1.scrollV; addChild(myTextBox1); addChild(myTextBox2); myTextBox1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownScroll); myTextBox1.addEventListener(Event.SCROLL, scrollHandler); } public function mouseDownScroll(event:MouseEvent):void { myTextBox1.scrollV++; } public function scrollHandler(event:Event):void { myTextBox2.text="scrolled to line: " + myTextBox1.scrollV; } } } link Wird ausgelöst, wenn ein Benutzer auf einen Hyperlink in einem HTML-fähigen Textfeld klickt und die URL-Adresse mit „event:“ beginnt.flash.events.TextEvent.LINKflash.events.TextEvent Wird ausgelöst, wenn ein Benutzer auf einen Hyperlink in einem HTML-fähigen Textfeld klickt und die URL-Adresse mit „event:“ beginnt. Der Rest der URL nach „event:“ wird in die Texteigenschaft des LINK-Ereignisses platziert.

Hinweis: Das Standardverhalten (dem Textfeld wird Text hinzugefügt) tritt nur dann ein, wenn Flash Player das Ereignis erstellt. Dies ist der Fall, wenn ein Benutzer versucht, Text einzugeben. Eine Texteingabe in ein Textfeld durch Senden von textInput-Ereignissen ist nicht möglich.

Im folgenden Beispiel wird die Funktion playMP3() definiert. Es wird das TextField-Objekt list erstellt und mit HTML-Text gefüllt. Die Texte "Track 1" und "Track 2" sind Links innerhalb des Textfelds. Die Funktion playMP3() wird aufgerufen, wenn der Benutzer auf einen der Links klickt. Der Name der MP3-Datei nach dem String „event:“ im href-Attribut des HTML-Tags wird an die linkHandler()-Methode als text-Eigenschaft des link-Ereignisobjekts übergeben. package { import flash.display.Sprite; import flash.errors.IOError; import flash.events.IOErrorEvent; import flash.events.TextEvent; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_event_link extends Sprite { private var myMP3:Sound; public function TextField_event_link() { myMP3 = new Sound(); var list:TextField = new TextField(); list.autoSize = TextFieldAutoSize.LEFT; list.multiline = true; list.htmlText = "<a href=\"event:track1.mp3\">Track 1</a><br>"; list.htmlText += "<a href=\"event:track2.mp3\">Track 2</a><br>"; addEventListener(TextEvent.LINK, linkHandler); addChild(list); } private function playMP3(mp3:String):void { try { myMP3.load(new URLRequest(mp3)); myMP3.play(); } catch(err:Error) { trace(err.message); } myMP3.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); } private function linkHandler(linkEvent:TextEvent):void { playMP3(linkEvent.text); } private function errorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } } }
change Wird ausgelöst, nachdem ein Steuerelementwert geändert wurde (im Gegensatz zum textInput-Ereignis, das ausgelöst wird, bevor der Wert geändert wird).flash.events.Event.CHANGEflash.events.Event Wird ausgelöst, nachdem ein Steuerelementwert geändert wurde (im Gegensatz zum textInput-Ereignis, das ausgelöst wird, bevor der Wert geändert wird). Im Gegensatz zur W3C DOM-Ereignismodell-Version des change-Ereignisses, bei der das Ereignis erst nach einem Wechsel des Fokus auf ein anderes Steuerelement ausgelöst wird, wird das Ereignis bei der ActionScript 3.0-Version des change-Ereignisses ausgelöst, sobald sich das Steuerelement ändert. Wenn ein Benutzer z. B. Text in ein Textfeld eingibt, wird ein change-Ereignis nach jedem Tastendruck ausgelöst. Im folgenden Beispiel wird der Text, den der Benutzer eingibt (die Benutzereingabe), sofort in ein anderes Textfeld mit einem anderen Textformat kopiert.

Es werden zwei Textfelder erstellt, eines für die Benutzereingabe und das andere (headingTextField) für die Kopie der Benutzereingabe. Es wird auch ein TextFormat-Objekt erstellt und das Standardtextformat wird dem Textfeld headingTextField zugewiesen. Wenn der Inhalt des Textfelds geändert wird, wird die changeHandler()-Methode aufgerufen, die den Text aus dem Textfeld inputTextField dem Textfeld headingTextField zuweist. (Wenn die Methode für das TextEvent.TEXT_INPUT-Ereignis und nicht für das Event.CHANGE-Ereignis aufgerufen wird, wird der Inhalt der Benutzereingabe erst kopiert, nachdem der Benutzer weiteren Text eingegeben hat.)

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFormat; import flash.text.TextFormatAlign; import flash.events.Event; import flash.events.TextEvent; public class TextField_Event_changeExample extends Sprite { private var inputTextField:TextField = new TextField(); private var headingTextField:TextField = new TextField(); private var newFormat:TextFormat = new TextFormat(); public function TextField_Event_changeExample() { headingTextField.x = 10; headingTextField.y = 10; headingTextField.height = 30; headingTextField.width = 400; headingTextField.background = true; headingTextField.backgroundColor = 0xF5F5DC; headingTextField.selectable = false; inputTextField.x = 10; inputTextField.y = 70; inputTextField.height = 20; inputTextField.width = 230; inputTextField.background = true; inputTextField.border = true; inputTextField.maxChars = 40; inputTextField.wordWrap = true; inputTextField.type = TextFieldType.INPUT; inputTextField.addEventListener(Event.CHANGE, changeHandler); newFormat.bold = true; newFormat.size = 18; newFormat.color = 0xFF0000; newFormat.align = TextFormatAlign.CENTER; headingTextField.defaultTextFormat = newFormat; this.addChild(inputTextField); this.addChild(headingTextField); } private function changeHandler(e:Event):void { headingTextField.text = inputTextField.text; } } }
TextField Erstellt eine neue TextField-Instanz. Erstellt eine neue TextField-Instanz. Rufen Sie nach der Erstellung der TextField-Instanz die addChild()- bzw. addChildAt()-Methode des übergeordneten DisplayObjectContainer-Objekts auf, um die TextField-Instanz der Anzeigeliste hinzuzufügen.

Die Standardgröße für ein Textfeld beträgt 100 x 100 Pixel.

Das folgende Beispiel zeigt, wie Sie in ActionScript dynamisch ein TextField-Objekt erstellen können, indem Sie die type-Eigenschaft des Textfeldobjekts auf die TextFieldType.INPUT-Konstante einstellen. Beispiel bereitgestellt von ActionScriptExamples.com. var theTextField:TextField = new TextField(); theTextField.type = TextFieldType.INPUT; theTextField.border = true; theTextField.x = 10; theTextField.y = 10; theTextField.multiline = true; theTextField.wordWrap = true; addChild(theTextField);
appendText Hängt den vom Parameter „newText“ angegebenen String an das Ende des Texts im Textfeld an.newTextStringDer an den vorhandenen Text anzuhängende String. Hängt Text an das Ende des vorhandenen Texts im „TextField“ an. Hängt den vom Parameter newText angegebenen String an das Ende des Texts im Textfeld an. Diese Methode ist effizienter als eine Additionszuweisung (+=) bei einer text-Eigenschaft (wie z. B. someTextField.text += moreText), insbesondere bei Textfeldern mit erheblichem Inhalt. Im folgenden Beispiel wird die Uhrzeit angezeigt, falls nicht gerade Wochenende ist. Am Wochenende wird dagegen der Text „It's the weekend“ angezeigt. Außerdem werden bis zu einer bestimmten Position die Anzahl der Zeichen und die Anzahl der Zeilen im Textfeld gezählt.

Das Textfeld outputText wird so eingestellt, dass es sich automatisch an den Text anpasst und dass der Text links ausgerichtet ist. Dazu wird die Eigenschaft autoSize verwendet. Die outputText.text-Eigenschaft schreibt die erste Zeile des Inhalts, und die appendText()-Methode hängt den Rest des Inhalts an. (Es ist nicht erforderlich, mit der text-Eigenschaft zu beginnen. Die appendText()-Methode könnte auch verwendet werden, um Text von außerhalb des Rahmens anzuhängen.) Wenn die text-Eigenschaft ein zweites Mals gesetzt wird, wird der ursprüngliche Text überschrieben. Verwenden Sie den +=-Operator, um Inhalt mit der text-Eigenschaft anzuhängen.

Die if-Anweisung überprüft, ob es sich beim Datum um Samstag (6) oder Sonntag (0) handelt. Ist dies nicht der Fall, gibt die toLocaleTimeString()-Methode die Ortszeit zurück, die an den Inhalt des Textfelds angehängt wird.

Die length-Eigenschaft des Textfelds wird verwendet, um die Anzahl der Zeichen bis direkt vor dem Aufrufen der Funktion zu lesen, und die pnumLines-Eigenschaft zählt die Zeilen im Textfeld. Beachten Sie, dass die leeren Zeilen sowie die Leerräume und Zeilenumbrüche (\n) mitgezählt werden, um die Länge des Inhalts zu bestimmen.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_appendTextExample extends Sprite { public function TextField_appendTextExample() { var outputText:TextField = new TextField(); var today:Date = new Date(); outputText.x = 10; outputText.y = 10; outputText.background = true; outputText.autoSize = TextFieldAutoSize.LEFT; outputText.text = "WHAT TIME IS IT?" + "\n\n"; if((today.day == 0) || (today.day == 6)) { outputText.appendText("It's the weekend."); outputText.appendText("\n\n"); } else { outputText.appendText("The time is: "); outputText.appendText(today.toLocaleTimeString() + ".\n\n"); } outputText.appendText("Number of characters including line breaks and spaces so far: "); outputText.appendText(outputText.length.toString() + "\n"); outputText.appendText("Number of lines in the outputText: "); outputText.appendText(outputText.numLines.toString()); this.addChild(outputText); } } }
getCharBoundaries Gibt ein Rechteck zurück, das die Begrenzungsbox für das Zeichen darstellt.Ein Rechteck mit Mindest- und Höchstwerten für x und y, mit dem die Begrenzungsbox für das Zeichen definiert wird. flash.geom:RectanglecharIndexintDer Indexwert für das Zeichen mit Basis null (d. h., die erste Position ist 0, die zweite Position 1 usw.). Gibt ein Rechteck zurück, das die Begrenzungsbox für das Zeichen darstellt. Gibt ein Rechteck zurück, das die Begrenzungsbox für das Zeichen darstellt. Im folgenden Beispiel wird ein vom Benutzer ausgewähltes Zeichen mithilfe der getCharBoundaries()-Methode markiert (hervorgehoben).

Die Klasse definiert das Shape-Objekt spotlight, das ein Rechteck um jedes ausgewählte Zeichen zeichnet. Wenn der Benutzer auf das Textfeld myTextField klickt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode ruft die getCharIndexAtPoint()-Methode den Index des ausgewählten Zeichens basierend auf den localX- und localY-Koordinaten des Mausklicks ab, der relativ zum Sprite-Objekt, in dem er sich befindet, ist. Die getCharIndexAtPoint()-Methode gibt -1 zurück, wenn der Punkt (der Mausklick) sich auf keinem Zeichen befindet. Da das Textfeld größer sein kann als der Text, wird die zurückgegebene Ganzzahl (index) überprüft, um sicherzustellen, dass der Benutzer auf ein Zeichen geklickt hat. Die Ganzzahl index wird auch von getCharBoundaries() verwendet, um ein Rectangle-Objekt abzurufen, das die Grenzen des Zeichens enthält. Die clear()-Methode löscht alle zuvor angezeigten spotlight-Shape-Objekte. An der Position des Zeichens (ausgehend von den Koordinaten (10, 10)) wird mithilfe der zurückgegebenen x- und y-Koordinaten des frame-Rechtecks ein neues Rechteck in der Größe der Breite- und Höhe-Werte des Zeichens gezeichnet. Um das Zeichen hervorzuheben, wird das Shape-Objekt spotlight mit Gelb gefüllt und die Deckkraft wird auf 35 Prozent gesetzt, sodass das Zeichen zu erkennen ist. Beachten Sie, dass Leerzeichen auch als Zeichen behandelt werden.

package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.geom.Rectangle; import flash.events.MouseEvent; import flash.text.TextFieldAutoSize; import flash.display.Shape; public class TextField_getCharBoundariesExample extends Sprite { private var myTextField:TextField = new TextField(); private var spotlight:Shape = new Shape(); public function TextField_getCharBoundariesExample() { myTextField.x = 10; myTextField.y = 10; myTextField.border = true; myTextField.selectable = false; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.text = "Selected a character from this text by clicking on it." myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); this.addChild(spotlight); } private function clickHandler (e:MouseEvent):void { var index:int = myTextField.getCharIndexAtPoint(e.localX, e.localY); if (index != -1) { var frame:Rectangle = myTextField.getCharBoundaries(index); spotlight.graphics.clear(); spotlight.graphics.beginFill(0xFFFF00, .35); spotlight.graphics.drawRect((frame.x + 10), (frame.y + 10), frame.width, frame.height); spotlight.graphics.endFill(); } } } }
flash.geom.Rectangle
getCharIndexAtPoint Gibt den auf null basierenden Indexwert des Zeichens an dem von den Parametern x und y angegebenen Punkt zurück.Der Indexwert für das Zeichen mit Basis null (d. h., die erste Position ist 0, die zweite Position 1 usw.). Wenn der Wert -1 zurückgegeben wird, befindet sich der Punkt nicht über einem Zeichen. intxNumberDie x-Koordinate des Zeichens. yNumberDie y-Koordinate des Zeichens. Gibt den auf null basierenden Indexwert des Zeichens zurück. Gibt den auf null basierenden Indexwert des Zeichens an dem von den Parametern x und y angegebenen Punkt zurück. Im folgenden Beispiel wird das Zeichen in ein anderes Textfeld über dem Text kopiert, wenn der Benutzer auf ein Zeichen klickt.

Das erste Textfeld enthält dann den Text, den der Benutzer auswählt. Um sicherzustellen, dass nur auf den Text geklickt, dieser aber nicht ausgewählt wird, wird die selectable-Eigenschaft auf „false“ gesetzt. Wenn der Benutzer auf das Textfeld firstTextField klickt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode gibt die getCharIndexAtPoint()-Methode den Index des Zeichens zurück, basierend auf den localX- und localY-Koordinaten des Mausklicks. Da das Textfeld größer sein kann als der Text, wird die zurückgegebene Ganzzahl (index) überprüft, um sicherzustellen, dass der Benutzer auf ein Zeichen geklickt hat. Die getCharIndexAtPoint()-Methode gibt -1 zurück, wenn der Punkt (der Mausklick) sich nicht auf einem Zeichen befindet. Anhand der Mauskoordinaten werden die Koordinaten des neuen Textfelds, in dem die kopierten Zeichen angezeigt werden, festgelegt. Die Farbe der Zeichen im zweiten Textfeld wird auf „rot“ gesetzt. Zum Schluss wird der Text des zweiten Feldes auf das ausgewählte Zeichen festgelegt, das mit der charAt()-Methode abgerufen wird. Beachten Sie, dass bei Verwendung der text-Eigenschaft anstelle der appendText()-Methode das Zeichen im zweiten Feld überschrieben wird, anstatt das Zeichen anzuhängen.

package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.geom.Rectangle; import flash.events.MouseEvent; import flash.text.TextFieldAutoSize; public class TextField_getCharIndexAtPointExample extends Sprite { private var firstTextField:TextField = new TextField(); private var secondTextField:TextField = new TextField(); public function TextField_getCharIndexAtPointExample() { firstTextField.x = 100; firstTextField.y = 100; firstTextField.width = 260; firstTextField.height = 20; firstTextField.border = true; firstTextField.background = true; firstTextField.selectable = false; firstTextField.text = "Selected a character from this text by clicking on it." firstTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(firstTextField); this.addChild(secondTextField); } private function clickHandler (e:MouseEvent):void { var index:int = firstTextField.getCharIndexAtPoint(e.localX, e.localY); if (index != -1) { secondTextField.x = mouseX; secondTextField.y = 70; secondTextField.border = true; secondTextField.selectable = false; secondTextField.background = true; secondTextField.textColor = 0xFF0000; secondTextField.autoSize = TextFieldAutoSize.LEFT; secondTextField.text = firstTextField.text.charAt(index); } } } }
getFirstCharInParagraph Gibt anhand eines Zeichenindex den Index des ersten Zeichens im gleichen Absatz zurück.Der angegebene Zeichenindex befindet sich nicht im gültigen Bereich. RangeErrorRangeErrorDer auf null basierende Indexwert des ersten Zeichens im gleichen Absatz. intcharIndexintDer Indexwert für das Zeichen mit Basis null (d. h., das erste Zeichen ist 0, das zweite Zeichen 1 usw.). Der auf null basierende Indexwert des Zeichens. Gibt anhand eines Zeichenindex den Index des ersten Zeichens im gleichen Absatz zurück. Im folgenden Beispiel wird eine Absatzformatierung auf den Inhalt des Textfelds angewendet. Wenn der Benutzer auf einen Absatz klickt, wird der Text des Absatzes rechts ausgerichtet; klickt der Benutzer erneut auf den Absatz, wird das ursprüngliche (Standard-)Format, Ausrichtung links, angewendet.

Im Konstruktor wird das Textfeld myTextField für den Zeilenumbruch eingerichtet. Die getTextFormat-Methode gibt das ursprüngliche Format des ersten Zeichens des Textfeldinhalts zurück, das in das TextFormat-Objekt originalFormat platziert wird. Ein neues TextFormat-Objekt (newFormat) wird definiert, dessen align-Eigenschaft auf die Ausrichtung rechts gesetzt wird. Wenn der Benutzer auf das Textfeld klickt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode gibt die getCharIndexAtPoint()-Methode den Index des Zeichens zurück, basierend auf den localX- und localY-Koordinaten des Mausklicks. Die erste if-Anweisung überprüft, ob der Benutzer auf ein Zeichen geklickt hat. Unter Verwendung der clickIndex-Ganzzahl, die von der getCharIndexAtPoint()-Methode zurückgegeben wird, gibt die getFirstCharInParagraph()-Methode den Index des ersten Zeichens in dem Absatz, auf den der Benutzer geklickt hat, zurück. Der Index des letzten Zeichens im Absatz wird bestimmt, indem die Länge des Absatzes (mithilfe der getParagraphLength()-Methode) zum Index des ersten Zeichens im Absatz hinzugefügt wird, abzüglich des letzten Zeichens (\n). Die zweite if-Anweisung überprüft das Format des ersten Zeichens im Absatz. Wenn dessen Ausrichtung mit der des ursprünglichen Formats (Linksausrichtung) übereinstimmt, wird das neue Format auf alle Zeichen im Absatz angewendet. Andernfalls wird das Format des Absatzes auf das ursprüngliche Format zurückgesetzt. Die Ausrichtung ist genau wie Einzug, Aufzählungszeichen, Tabulator, linker und rechter Rand eine Formatierung, die für Absätze gilt. Beachten Sie, dass bei Verwendung eines Zeilenumbruchs die Formatierung nur auf die erste Zeile des Absatzes angewendet wird, wenn das Argument endIndex für die setTextFormat()-Methode nicht definiert ist.

package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; import flash.text.TextFormat; import flash.text.TextFormatAlign; public class TextField_getFirstCharInParagraphExample extends Sprite { private var myTextField:TextField = new TextField(); private var originalFormat:TextFormat = new TextFormat(); private var newFormat:TextFormat = new TextFormat(); public function TextField_getFirstCharInParagraphExample() { myTextField.x = 10; myTextField.y = 10; myTextField.border = true; myTextField.wordWrap = true; myTextField.width = 300; myTextField.height = 300; myTextField.background = true; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file " + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript. " + "TextField instance names are displayed in the Movie Explorer and in the Insert " + "Target Path dialog box in the Actions panel.\n\n" + "To create a text field dynamically, use the TextField constructor.\n\n" + "The methods of the TextField class let you set, select, and manipulate " + "text in a dynamic or input text field that you create during authoring or at runtime.\n\n"); originalFormat = myTextField.getTextFormat(0); newFormat.align = TextFormatAlign.RIGHT; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); } private function clickHandler(e:MouseEvent):void { var clickIndex:int = myTextField.getCharIndexAtPoint(e.localX, e.localY); if(clickIndex != -1) { var paragraphFirstIndex:int = myTextField.getFirstCharInParagraph(clickIndex); var paragraphEndIndex:int = paragraphFirstIndex + ((myTextField.getParagraphLength(clickIndex) - 1)); if (myTextField.getTextFormat(paragraphFirstIndex).align == originalFormat.align) { myTextField.setTextFormat(newFormat, paragraphFirstIndex, paragraphEndIndex); }else { myTextField.setTextFormat(originalFormat, paragraphFirstIndex, paragraphEndIndex); } } } } }
getImageReference 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 &lt;img&gt;-Tag hinzugefügt wurde.Das Anzeigeobjekt, das dem Bild bzw. der SWF-Datei mit dem passenden id-Attribut im Tag <img> des Textfelds entspricht. Bei Medien von einer externen Quelle handelt es sich um ein Loader-Objekt. Sobald das Medienobjekt geladen ist, handelt es sich um ein untergeordnetes Objekt dieses Loader-Objekts. Für in die SWF-Datei eingebetteten Medien ist dies das geladene Objekt. Wenn kein <img>-Tag mit der übereinstimmenden id existiert, gibt die Methode null zurück. flash.display:DisplayObjectidStringDie id, für die eine Entsprechung vorliegen muss (im Attribut id des Tags <img>). Gibt einen DisplayObject-Verweis für die angegebene id zurück, bei einem Bild bzw. einer SWF-Datei, das/die einem HTML-formatierten Textfeld mit dem Tag <img> hinzugefügt wurde. Das Tag <img> liegt im folgenden Format vor:

   <img src = 'filename.jpg' id = 'instanceName' >

Im folgenden Beispiel wird das Bild im Feld beim Klicken auf das Textfeld auf eine Deckkraft von 25 Prozent gesetzt und um 90 Grad gedreht. Mit jedem folgenden Mausklick wird das Bild erneut um 90 Grad gedreht.

Das Bild (image.jpg) wird über HTML eingeschlossen. (Hier wird davon ausgegangen, dass sich die Bilddatei im selben Verzeichnis wie die SWF-Datei befindet). Ein id-Attribut muss für das img-Tag definiert werden, damit mit der getImageReference()-Methode auf das Bild zugegriffen werden kann. Die htmlText-Eigenschaft wird verwendet, um HTML-formatierte Stringinhalte einzuschließen. Wenn der Benutzer auf das Textfeld myTextField klickt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode gibt die getImageReference()-Methode einen Verweis auf das Bild als DisplayObject zurück. Mit diesem Verweis kann das Bild wie jedes DisplayObject-Objekt bearbeitet werden. Hier werden die Eigenschaften alpha (Transparenz) und rotation festgelegt. Die transform-Eigenschaft kann verwendet werden, um auf die Matrix, die Farbtransformation und die Pixelgrenzen des Anzeigeobjekts zuzugreifen. Beachten Sie auch, dass flash.display.DisplayObject importiert werden muss.

package { import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; import flash.display.DisplayObject; import flash.text.TextFieldAutoSize; public class TextField_getImageReferenceExample extends Sprite { private var myTextField:TextField = new TextField(); public function TextField_getImageReferenceExample() { var myText1:String = "<p>Here is an image we want to mainpulate: <img src='image.jpg' id='testimage'></p>"; myTextField.x = 10; myTextField.y = 10; myTextField.width = 250; myTextField.height = 250; myTextField.background = true; myTextField.border = true; myTextField.border = true; myTextField.multiline = true; myTextField.htmlText = myText1; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); } private function clickHandler(e:MouseEvent):void { var imageRef:DisplayObject = myTextField.getImageReference("testimage"); imageRef.rotation += 90; imageRef.x = 125; imageRef.y = 125; imageRef.alpha = 0.25; } } }
htmlText
getLineIndexAtPoint Gibt den auf null basierenden Indexwert des Zeichens an dem von den Parametern x und y angegebenen Punkt zurück.Der Indexwert für die Zeile mit Basis null (d. h., die erste Zeile ist 0, die zweite Zeile 1 usw.). Wenn der Wert -1 zurückgegeben wird, befindet sich der Punkt nicht über einer Zeile. intxNumberDie x-Koordinate der Zeile. yNumberDie y-Koordinate der Zeile. Der auf null basierende Indexwert der Zeile am angegebenen Punkt. Gibt den auf null basierenden Indexwert der Zeile an dem von den Parametern x und y angegebenen Punkt zurück. Im folgenden Beispiel wird eine Zeile aus einem Shakespeare-Sonett in eines neues Textfeld kopiert, wenn der Benutzer auf die Zeile klickt.

Im Konstruktor wird das Textfeld poem so festgelegt, dass kein Zeilenumbruch verwendet wird (da es sich um ein Gedicht handelt). Die autoSize-Eigenschaft wird verwendet, um den Text automatisch anzupassen und ggf. seine Größe als links ausgerichteter Text zu ändern. Das Textfeld poemCopy wird unter dem Textfeld poem platziert. Wenn der Benutzer auf eine Zeile des Gedichts klickt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode gibt die getLineIndexAtPoint()-Methode den Zeilenindex der Zeile zurück, auf die der Benutzer geklickt hat, basierend auf den localX- und localY-Koordinaten des Mausklicks. (Da das Originalgedicht in das Textfeld passt, ist es hier nicht erforderlich, zu überprüfen, ob der Text außerhalb des Bereichs liegt (RangeError, von der getCharIndexAtPoint()-Methode ausgegeben.) Der Zeilenindex wird verwendet, um den Inhalt der Zeile mit der getLineText()-Methode als String abzurufen, der dann an den Inhalt des Textfelds poemCopy angehängt wird. Das Kopieren kann kontinuierlich fortgeführt werden, ab einem bestimmten Punkt befindet sich der Text jedoch außerhalb des sichtbaren Bereichs des Textfelds poemCopy.

package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; public class TextField_getLineIndexAtPointExample extends Sprite { private var poem:TextField = new TextField(); private var poemCopy:TextField = new TextField(); public function TextField_getLineIndexAtPointExample() { poem.border = true; poem.autoSize = TextFieldAutoSize.LEFT; poem.x = 10; poem.wordWrap = false; poemCopy.height = 250; poemCopy.width = 270; poemCopy.y = 230; poemCopy.x = 10; poemCopy.background = true; poemCopy.border = true; poemCopy.wordWrap = false; poem.appendText("Let me not to the marriage of true minds\n" + "Admit impediments. love is not love\n" + "Which alters when it alteration finds\n" + "Or bends with the remover to remove:\n" + "O no! it is an ever-fixed mark\n" + "That looks on tempests and is never shaken;\n" + "It is the star to every wandering bark,\n" + "Whose worth's unknown, although his height be taken.\n" + "Love's not Time's fool, though rosy lips and cheeks\n" + "Within his bending sickle's compass come:\n" + "Love alters not with his brief hours and weeks,\n" + "But bears it out even to the edge of doom.\n" + "If this be error and upon me proved,\n" + "I never writ, nor no man ever loved."); poem.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(poem); this.addChild(poemCopy); } private function clickHandler(e:MouseEvent):void { var index:int = poem.getLineIndexAtPoint(e.localX, e.localY); var s:String; s = poem.getLineText(index); poemCopy.appendText(s + "\n"); } } }
getLineIndexOfChar Gibt den auf null basierenden Indexwert der Zeile zurück, die das vom Parameter „charIndex“ angegebene Zeichen enthält.Der angegebene Zeichenindex befindet sich nicht im gültigen Bereich. RangeErrorRangeErrorDer auf null basierende Indexwert der Zeile. intcharIndexintDer Indexwert für das Zeichen mit Basis null (d. h., das erste Zeichen ist 0, das zweite Zeichen 1 usw.). Der auf null basierende Indexwert der Zeile, die das vom charIndex-Parameter angegebene Zeichen enthält. Gibt den auf null basierenden Indexwert der Zeile zurück, die das vom charIndex-Parameter angegebene Zeichen enthält. Im folgenden Beispiel gibt die getLineIndexOfChar()-Methode die Zeilennummern für das 100. und 500. Zeichen im Textfeld zurück.

Das Textfeld myTextField wurde mit Zeilenumbruch und als links ausgerichteter Text definiert. Die getLineIndexOfChar()-Methode gibt den Zeilenindex für die angegebenen Zeichenindizes (100 und 500) zurück. Diese Informationen werden dann an den Absatz angehängt. Beachten Sie, dass der Zeilenindex (index) um 1 erhöht wird, um die Zeilennummer zu erhalten, da der Zeilenindex mit 0 beginnt. Wenn die Anzeigegröße geändert wird, kann sich die Zeilennummer zwar ändern, die Informationen hier bleiben jedoch unverändert, da die Methode nur ein Mal aufgerufen wird.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_getLineIndexOfCharExample extends Sprite { public function TextField_getLineIndexOfCharExample() { var myTextField:TextField = new TextField(); myTextField.x = 10; myTextField.y = 10; myTextField.width = 200; myTextField.background = true; myTextField.border = true; myTextField.wordWrap = true; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file" + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript. " + "TextField instance names are displayed in the Movie Explorer and in the Insert " + "Target Path dialog box in the Actions panel.\n\n"); var index:int = myTextField.getLineIndexOfChar(100); myTextField.appendText("100th character is in line: " + (index + 1) + "\n"); index = myTextField.getLineIndexOfChar(500); myTextField.appendText("500th character is in line: " + (index + 1)); this.addChild(myTextField); } } }
getLineLength Gibt die Zeichenanzahl in einer bestimmten Textzeile zurück.Die angegebene Zeilennummer befindet sich nicht im Bereich. RangeErrorRangeErrorDie Anzahl der Zeichen in der Zeile. intlineIndexintDie Nummer der Zeile, deren Länge Sie ermitteln möchten. Gibt die Zeichenanzahl in einer bestimmten Textzeile zurück. Gibt die Zeichenanzahl in einer bestimmten Textzeile zurück. Im folgenden Beispiel wird die Zeilenlänge (Anzahl der Zeichen) einer Zeile in einem separaten Feld angezeigt, wenn der Benutzer auf die Zeile klickt.

Zur Veranschaulichung wird das Textfeld myTextField, in dem der zu zählende Text angezeigt wird, auf INPUT gesetzt, sodass der Benutzer die Zeilen ändern oder zwischen den Zeilen bzw. am Ende Zeilen hinzufügen kann. (Am Ende der letzten Zeile wird mithilfe eines Zeilenumbruchs (\n) eine leere Zeile erstellt.) Das Textfeld countLines, in dem das Ergebnis der Zeilenlängenermittlung angezeigt wird, wird unter dem Textfeld myTextField platziert, der Text in diesem Feld kann nicht ausgewählt werden. Wenn der Benutzer auf eine Zeile im Textfeld myTextField klickt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode gibt die getLineIndexAtPoint()-Methode den Zeilenindex der Zeile zurück, auf die der Benutzer geklickt hat. Dazu werden die localX- und localY-Koordinaten des Mausklicks verwendet. Die if-Anweisung überprüft, ob der Benutzer auf ein Zeichen geklickt hat. Ist dies der Fall, gibt die getLineLength()-Methode unter Verwendung des Zeilenindex die Anzahl der Zeichen in der Zeile zurück. Beachten Sie, dass die leeren Zeilen zwischen den Zeilen das zweite Zeilenumbruchzeichen (\n) enthalten und eine Zählung von 1 Zeichen aufweisen, während die Zeile nach der letzten Zeile eine Zählung von 0 aufweist. Leerzeichen zählen ebenfalls als ein Zeichen. Der Benutzer kann eine neue Zeile schreiben oder eine Zeile ändern und die Zeichenzählung der Zeile erhalten, indem er auf die Zeile klickt. Wenn Zeilenumbrüche verwendet werden und die Bildschirmgröße geändert wird, könnte sich der Zeilenindex ändern.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.events.Event; import flash.events.MouseEvent; public class TextField_getLineLengthExample extends Sprite { private var myTextField:TextField = new TextField(); private var countLines:TextField = new TextField(); public function TextField_getLineLengthExample() { myTextField.x = 10; myTextField.y = 10; myTextField.width = 350; myTextField.height = 150; myTextField.background = true; myTextField.border = true; myTextField.type = TextFieldType.INPUT; myTextField.appendText("Click on the lines to count its number of characters:\n\n"); myTextField.appendText("This is a short line.\n"); myTextField.appendText("This is a longer line than the last line.\n\n"); myTextField.appendText("This one is even longer than the one before. It has two sentences.\n"); this.addChild(myTextField); countLines.border = true; countLines.x = 10; countLines.y = 180; countLines.height = 30; countLines.width = 200; countLines.background = true; countLines.selectable = false; this.addChild(countLines); myTextField.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(e:MouseEvent):void { var index:int = myTextField.getLineIndexAtPoint(e.localX, e.localY); if (index != -1) { var lenght:int = myTextField.getLineLength(index); countLines.text = "Number of characters in the line is: " + lenght.toString(); } } } }
getLineMetrics Gibt metrische Informationen zu einer bestimmten Textzeile zurück.Die angegebene Zeilennummer befindet sich nicht im Bereich. RangeErrorRangeErrorEin TextLineMetrics-Objekt. flash.text:TextLineMetricslineIndexintDie Nummer der Zeile, für die Sie metrische Informationen ermitteln möchten. Gibt metrische Informationen zu einer bestimmten Textzeile zurück. Gibt metrische Informationen zu einer bestimmten Textzeile zurück. Im folgenden Beispiel werden einige metrische Zeilenwerte für zwei unterschiedlich formatierte Textzeilen angezeigt.

Der angehängte Text befindet sich zwei Zeilen unter dem Gedicht Song of Myself von Walt Whitman. Mit einem neuen TextFormat-Objekt (newFormat) wird das Format der zweiten Zeile festgelegt. Die erste Zeile enthält das Standardformat. Die getLineMetrics()-Methode gibt ein TextLineMetrics-Objekt für eine bestimmte Zeile zurück. (Der Zeilenindex beginnt mit 0.) Mit den TextLineMetrics-Objekten metrics1 und metrics2 für die erste und zweite Zeile werden jeweils die Werte für die Oberlänge (ascent), Unterlänge (descent), Höhe (height) und Strichstärke (weight) der Zeile abgerufen und angezeigt. Die resultierenden Zahlen werden in Strings konvertiert, jedoch nicht gerundet. Beachten Sie, dass dieser Wert für die Zeile und nicht für ein bestimmtes Zeichen gilt. Er spiegelt den Bereich der Zeichen für eine Zeile wieder. Wenn in einer Zeile zum Beispiel Zeichen mit unterschiedlichen Höhen vorkommen, bestimmt das Zeichen mit dem höchsten Wert für die Höhe den Wert. Dies bedeutet auch, dass sich einige metrische Werte ändern können, wenn das Format eines Zeichens geändert wird.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextLineMetrics; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.TextFormat; public class TextField_getLineMetricsExample extends Sprite { public function TextField_getLineMetricsExample() { var myTextField:TextField = new TextField(); var newFormat:TextFormat = new TextFormat(); myTextField.x = 10; myTextField.y = 10; myTextField.background = true; myTextField.wordWrap = false; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.appendText("A child said What is the grass? fetching it to me with full hands;\n"); myTextField.appendText("How could I answer the child? I do not know what it is any more than he.\n\n"); newFormat.size = 14; newFormat.font = "Arial"; newFormat.italic = true; myTextField.setTextFormat(newFormat, 67, 139); var metrics1:TextLineMetrics = myTextField.getLineMetrics(0); myTextField.appendText("Metrics ascent for the line 1 is: " + metrics1.ascent.toString() + "\n"); myTextField.appendText("Metrics descent is: " + metrics1.descent.toString() + "\n"); myTextField.appendText("Metrics height is: " + metrics1.height.toString() + "\n"); myTextField.appendText("Metrics width is: " + metrics1.width.toString() + "\n\n"); var metrics2:TextLineMetrics = myTextField.getLineMetrics(1); myTextField.appendText("Metrics ascent for the line 2 is: " + metrics2.ascent.toString() + "\n"); myTextField.appendText("Metrics descent is: " + metrics2.descent.toString() + "\n"); myTextField.appendText("Metrics height is: " + metrics2.height.toString() + "\n"); myTextField.appendText("Metrics width is: " + metrics2.width.toString() + "\n"); addChild(myTextField); } } }
flash.text.TextLineMetricsflash.text.TextLineMetrics
getLineOffset Gibt den Zeichenindex des ersten Zeichens in der vom Parameter „lineIndex“ angegebenen Zeile zurück.Die angegebene Zeilennummer befindet sich nicht im Bereich. RangeErrorRangeErrorDer auf null basierende Indexwert des ersten Zeichens in der Zeile. intlineIndexintDer Indexwert für die Zeile mit Basis null (d. h., die erste Zeile ist 0, die zweite Zeile 1 usw.). Der auf null basierende Indexwert des ersten Zeichens in der Zeile. Gibt den Zeichenindex des ersten Zeichens in der vom Parameter lineIndex angegebenen Zeile zurück. Im folgenden Beispiel wird das erste Zeichen in Zeile 4 überprüft, welches sich ändert, wenn die Größe des Bildschirms (und des Textfelds) geändert wird.

Für das Textfeld myTextField wird der Zeilenumbruch festgelegt. Im Textfeld countField wird das erste Zeichen der Zeile 4 angezeigt. Wenn der Benutzer auf das Textfeld myTextField klickt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode gibt die getLineOffset()-Methode den Index des ersten Zeichens bei Zeilenindex 3, also in der vierten Zeile des Textes, zurück. (Die erste Zeile hat den Index 0.) Die charAt()-Methode wird verwendet, um das Zeichen mithilfe des Index des ersten Zeichens der vierten Zeile abzurufen. Der Inhalt des Textfelds countField wird mit diesen Informationen aktualisiert; dazu wird die text-Eigenschaft des Textfelds countField verwendet. Die Verwendung der countField.text-Eigenschaft bedeutet, dass nach jedem Klick der Inhalt des Textfelds countField überschrieben wird. Wenn der Benutzer die Größe der Anzeige ändert, wird für den Inhalt ein Zeilenumbruch ausgeführt, und das erste Zeichen der Zeile 4 könnte sich ändern. Durch erneutes Klicken auf das Textfeld myTextField wird der Inhalt des Textfelds countField mit dem neuen ersten Zeichen der vierten Zeile aktualisiert.

package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; public class TextField_getLineOffsetExample extends Sprite { private var myTextField:TextField = new TextField(); private var countField:TextField = new TextField(); public function TextField_getLineOffsetExample() { myTextField.x = 10; myTextField.y = 10; myTextField.width = 150; myTextField.height = 300; myTextField.background = true; myTextField.border = true; myTextField.wordWrap = true; countField.height = 20; countField.width = 200; countField.x = 10; countField.y = 320; countField.selectable = false; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file " + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript."); myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); this.addChild(countField); } private function clickHandler(e:MouseEvent):void { var c:String; var index:int; index = myTextField.getLineOffset(3); c = myTextField.text.charAt(index); countField.text = "The first character of line 4 is: " + c; } } }
getLineText Gibt den Text der durch den Parameter „lineIndex“ angegebenen Zeile zurück.Die angegebene Zeilennummer befindet sich nicht im Bereich. RangeErrorRangeErrorDer in der angegebenen Zeile enthaltene Textstring. StringlineIndexintDer Indexwert für die Zeile mit Basis null (d. h., die erste Zeile ist 0, die zweite Zeile 1 usw.). Der in der angegebenen Zeile enthaltene Textstring. Gibt den Text der durch den Parameter lineIndex angegebenen Zeile zurück. Im folgenden Beispiel werden die Zeilennummern aller Vorkommnisse des Wortes „love“ im Shakespeare-Sonett gesucht und angezeigt.

Das Textfeld poem wird so eingerichtet, dass es sich an den Text anpasst und links ausgerichteten Text anzeigt. Die wordWrap-Eigenschaft wird auf false gesetzt, sodass für die Zeilen des Gedichts kein Zeilenumbruch ausgeführt wird, obwohl dies normalerweise kein Problem sein sollte, wenn die autoSize-Eigenschaft verwendet wird. Die for -Schleife durchläuft die Zeilen des Sonetts mithilfe der numLines-Eigenschaft des Textfelds. Die getLineText()-Methode gibt den Inhalt der Zeile als String zurück. (Beachten Sie, dass die numLines-Eigenschaft die Anzahl der Zeilen ab 1 zurückgibt, während bei der getLineText()-Methode die Zeilennummern bei 0 anfangen.) Unter Verwendung des regulären Ausdrucks (/love/i) sucht die if-Anweisung nach Teilstrings des Worts und Groß- oder Kleinschreibung. Wenn der Ausdruck gefunden wird, gibt die search-Methode den Index des ersten übereinstimmenden Teilstrings zurück, andernfalls wird -1 zurückgegeben (wenn kein Treffer gefunden wird). Die Nummer der Zeile, in der „love“ gefunden wurde ((i + 1)), wird dann in den String lineResult platziert. Die string-Methode konvertiert das number-Argument ((i + 1)) in einen String, sofern es ein anderes Argument gibt, das ein String ist (" "). Das Zeilenergebnis der Suche schließt Zeilen mit den Wörtern „loved“ oder „Love's“ mit ein. Wenn der String „Love was found in lines:“ (Liebe wurde in diesen Zeilen gefunden:) der for-Schleife vorangestellt würde, wäre das Wort „Love“ in dieser Zeile ebenfalls eingeschlossen worden.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; public class TextField_getLineTextExample extends Sprite { public function TextField_getLineTextExample() { var poem:TextField = new TextField(); var lineResult:String = ""; var pattern:RegExp = /love/i; poem.x = 10; poem.y = 10; poem.background = true; poem.wordWrap = false; poem.autoSize = TextFieldAutoSize.LEFT; poem.text = "Let me not to the marriage of true minds\n" + "Admit impediments. love is not love\n" + "Which alters when it alteration finds\n" + "Or bends with the remover to remove:\n" + "O no! it is an ever-fixed mark\n" + "That looks on tempests and is never shaken;\n" + "It is the star to every wandering bark,\n" + "Whose worth's unknown, although his height be taken.\n" + "Love's not Time's fool, though rosy lips and cheeks\n" + "Within his bending sickle's compass come:\n" + "Love alters not with his brief hours and weeks,\n" + "But bears it out even to the edge of doom.\n" + "If this be error and upon me proved,\n" + "I never writ, nor no man ever loved.\n\n"; for (var i:int = 0; i < poem.numLines; i++) { var s:String = poem.getLineText(i); if(s.search(pattern) != -1) { lineResult += (i + 1) + " "; } } poem.appendText("Love was found in lines: " + lineResult); this.addChild(poem); } } }
getParagraphLength Gibt anhand eines Zeichenindex die Länge des Absatzes mit dem angegebenen Zeichen zurück.Der angegebene Zeichenindex befindet sich nicht im gültigen Bereich. RangeErrorRangeErrorGibt die Anzahl der Zeichen im Absatz zurück. intcharIndexintDer Indexwert für das Zeichen mit Basis null (d. h., das erste Zeichen ist 0, das zweite Zeichen 1 usw.). Der auf null basierende Indexwert des Zeichens. Gibt anhand eines Zeichenindex die Länge des Absatzes mit dem angegebenen Zeichen zurück. Die Länge wird relativ zum ersten Zeichen im Absatz (wie von getFirstCharInParagraph() zurückgegeben) und nicht zum vorliegenden Zeichenindex angegeben. Im folgenden Beispiel wird die Länge des Absatzes sowie die Anzahl des Zeichens „s“ im Absatz in einem separaten Textfeld angezeigt, wenn der Benutzer eine Absatz auswählt.

Im Textfeld myTextField werden die Absätze angezeigt, die der Benutzer auswählt. Wenn der Benutzer auf das Textfeld klickt, wird das MouseEvent.CLICK-Ereignis ausgelöst und die clickHandler()-Methode wird aufgerufen. Die Länge des Absatzes und die Anzahl der „s“-Zeichen wird im Textfeld countField angezeigt, das unter dem Textfeld myTextField platziert wird.

In der clickHandler()-Methode gibt die getCharIndexAtPoint()-Methode den Index des Zeichens zurück, basierend auf den localX- und localY-Koordinaten des Mausklicks. Die erste if-Anweisung überprüft, ob der Benutzer auf ein Zeichen geklickt hat. Die getFirstCharInParagraph()-Methode verwendet diesen Index, um den Index des ersten Zeichens im selben Absatz zurückzugeben. Die von der getParagraphLength()-Methode zurückgegebene Absatzlänge wird zusammen mit dem Index des ersten Zeichens im Absatz verwendet, um den Index für das Absatzende zu bestimmen. Eine for-Schleife durchläuft den Absatz und ermittelt die Anzahl der „s“-Zeichen.

package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; public class TextField_getParagraphLengthExample extends Sprite { private var myTextField:TextField = new TextField(); private var countField:TextField = new TextField(); public function TextField_getParagraphLengthExample() { myTextField.x = 10; myTextField.y = 10; myTextField.background = true; myTextField.border = true; myTextField.wordWrap = true; myTextField.width = 300; myTextField.height = 280; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file" + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript. " + "TextField instance names are displayed in the Movie Explorer and in the Insert " + "Target Path dialog box in the Actions panel.\n\n" + "To create a text field dynamically, use the TextField() constructor.\n\n" + "The methods of the TextField class let you set, select, and manipulate " + "text in a dynamic or input text field that you create during authoring or at runtime."); myTextField.addEventListener(MouseEvent.CLICK, clickHandler); countField.x = 10; countField.y = 300; countField.height = 50; countField.width = 250; countField.background = true; countField.selectable = false; this.addChild(myTextField); this.addChild(countField); } private function clickHandler(e:MouseEvent):void { var index:int = myTextField.getCharIndexAtPoint(e.localX, e.localY); if(index != -1) { var beginParag:int = myTextField.getFirstCharInParagraph(index); var paragLength:int = myTextField.getParagraphLength(index); var endParag:int = beginParag + paragLength; var sCount:uint = 0; for (var i:int = beginParag; i <= endParag; i++) { if ((myTextField.text.charAt(i) == "s") || (myTextField.text.charAt(i) == "S")) { sCount++; } countField.text = "Paragraph length is: " + paragLength.toString() + "\n" + "Number of 's' characters in the paragraph: " + sCount.toString(); } } } } }
flash.text.TextField.getFirstCharInParagraph()
getTextFormat Gibt ein TextFormat-Objekt mit Formatierungsinformationen für den durch die Parameter „beginIndex“ und „endIndex“ angegebenen Textbereich zurück.Der angegebene beginIndex bzw. endIndex befindet sich nicht im gültigen Bereich. RangeErrorRangeErrorDas TextFormat-Objekt, das die Formatierungseigenschaften des angegebenen Texts wiedergibt. flash.text:TextFormatbeginIndexint-1Optional; eine Ganzzahl, die den Startpunkt eines Textbereichs innerhalb des Textfelds angibt. endIndexint-1Optional; eine Ganzzahl zur Angabe der Position des ersten Zeichens nach dem gewünschten Textbereich. Wenn Sie die Werte beginIndex und endIndex angeben, wird wie gewünscht der Text von beginIndex bis endIndex-1 gelesen. Gibt ein TextFormat-Objekt zurück. Gibt ein TextFormat-Objekt mit Formatierungsinformationen für den durch die Parameter beginIndex und endIndex angegebenen Textbereich zurück. Nur Eigenschaften, die für den gesamten Text gelten, sind im resultierenden TextFormat-Objekt eingestellt. Für jede gemischte Eigenschaft, die an unterschiedlichen Stellen im Text unterschiedliche Werte aufweist, wird der Wert auf null gesetzt.

Wenn Sie keine Werte für diese Parameter angeben, wird diese Methode auf den gesamten Text im Textfeld angewendet.

In der folgenden Tabelle sind drei Verwendungsmöglichkeiten aufgeführt:

VerwendungBeschreibungmy_textField.getTextFormat()Gibt ein TextFormat-Objekt mit den Formatierungsinformationen für den gesamten Text in einem Textfeld zurück. Nur Eigenschaften, die für den gesamten Text im Textfeld gelten, sind im resultierenden TextFormat-Objekt eingestellt. Für jede gemischte Eigenschaft, die an unterschiedlichen Stellen im Text unterschiedliche Werte aufweist, wird der Wert auf null gesetzt.my_textField.getTextFormat(beginIndex:Number)Gibt ein TextFormat-Objekt mit einer Kopie des Textformats an der durch beginIndex gekennzeichneten Position zurück.my_textField.getTextFormat(beginIndex:Number,endIndex:Number)Gibt ein TextFormat-Objekt mit Formatierungsinformationen für den Textbereich zwischen beginIndex und endIndex-1 zurück. Nur Eigenschaften, die für den gesamten Text im angegebenen Textbereich gelten, sind im resultierenden TextFormat-Objekt eingestellt. Alle „gemischten“ Eigenschaften (mixed), die an unterschiedlichen Stellen im Textbereich unterschiedliche Werte aufweisen, besitzen den Wert null.
Bitte sehen Sie sich das Beispiel für die getFirstCharInParagraph()- oder setTextFormat()-Methode an, in dem illustriert ist, wie die getTextFormat()-Methode verwendet wird.
flash.text.TextFormatflash.text.TextField.defaultTextFormatflash.text.TextField.setTextFormat()
isFontCompatible 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.Der angegebene fontStyle ist kein Mitglied von flash.text.FontStyle. ArgumentErrorArgumentErrortrue, wenn eine kompatible eingebettete Schriftart verfügbar ist, wenn nicht, dann false. BooleanfontNameStringDer Name der zu überprüfenden eingebetteten Schriftart. fontStyleStringLegt den Schriftstil fest, der geprüft werden soll. Verwenden Sie flash.text.FontStyle 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. Ab Flash Player 10 können zwei Arten von eingebetteten Schriftarten in einer SWF-Datei erscheinen. Normale eingebettete Schriftarten werden nur mit TextField-Objekten verwendet. CFF-Schriftarten werden nur von den flash.text.engine-Klassen verwendet. Die beiden Arten unterscheiden sich durch die fontType-Eigenschaft der Font-Klasse, die von der enumerateFonts()-Funktion zurückgegeben wird.

TextField kann keine Schriftarten des Typs EMBEDDED_CFF verwenden. Wenn embedFonts auf true gesetzt ist und die einzige Schriftart, die zur Laufzeit mit dem angegebenen Namen und Stil verfügbar ist, vom Typ EMBEDDED_CFF ist, kann Flash Player den Text nicht wiedergeben (so als ob keine eingebetteten Schriftarten mit dem angegebenen Namen und Stil zur Verfügung stünden).

Wenn sowohl EMBEDDED- als auch EMBEDDED_CFF-Schriftarten mit dem gleichen Namen und Stil verfügbar sind, wird die EMBEDDED-Schriftart ausgewählt und Text wird mit der EMBEDDED-Schriftart wiedergegeben.

flash.text.engine.FontDescription.fontLookupflash.text.engine.TextBlock.createTextLine()flash.text.FontType.EMBEDDED_CFF
replaceSelectedText Ersetzt die aktuelle Auswahl durch den Inhalt des Parameters „value“.Diese Methode kann bei einem Textfeld mit Stylesheet nicht verwendet werden. ErrorErrorvalueStringDer String, mit dem der aktuell ausgewählte Text ersetzt wird. Ersetzt die aktuelle Auswahl durch den Inhalt des Parameters „value“. Ersetzt die aktuelle Auswahl durch den Inhalt des Parameters value. Der Text wird an der Stelle eingefügt, an der sich die aktuelle Auswahl befindet; es werden das Standardzeichenformat und das Standardabsatzformat verwendet. Der Text wird nicht als HTML behandelt.

Mit der replaceSelectedText()-Methode können Sie Text einfügen und löschen, ohne die Zeichen- und Absatzformatierung des übrigen Textes zu beeinflussen.

Hinweis: Diese Methode funktioniert nicht, wenn ein Stylesheet auf das Textfeld angewendet wird.

Im folgenden Beispiel löscht der Benutzer Text aus dem ersten Textfeld, indem er ihn auswählt und den ausgewählten Text im zweiten Textfeld durch den String „NEW TEXT“ ersetzt.

Es werden zwei verschiedene TextField-Objekte erstellt, und für die MouseEvent.MOUSE_UP-Ereignisse werden Ereignis-Listener hinzugefügt. „Mouse up“ tritt ein, wenn der Benutzer die Maustaste loslässt, ein Ereignis, das normalerweise nach der Auswahl eines Textabschnitts vorkommt. Beachten Sie, dass die Standardeinstellung eines Textfelds vorsieht, dass der darin befindliche Text ausgewählt werden kann.

Mit der mouseHandler1()-Methode wird der Text gelöscht, indem er durch einen leeren String ersetzt wird, wenn der Benutzer die Maustaste im Textfeld myTextField1 loslässt. Dies kann wiederholt werden, bis der gesamte Text gelöscht wurde. In der mouseHandler2()-Methode werden die Eigenschaften selectionBeginIndex und selectionEndIndex überprüft, um festzustellen, ob Zeichen ausgewählt wurden, wenn ein Benutzer Text im Textfeld myTextField2 auswählt. (Die Eigenschaften selectionBeginIndex und selectionEndIndex haben nicht denselben Wert, wenn Text ausgewählt wurde.) Der ausgewählte Text wird dann durch den String „NEW TEXT“ ersetzt. Dies kann wiederholt werden, bis der gesamte ursprüngliche Text des zweiten Textfelds durch den String „NEW TEXT“ ersetzt wurde.

package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; public class TextField_replaceSelectedTextExample extends Sprite { private var myTextField1:TextField = new TextField(); private var myTextField2:TextField = new TextField(); public function TextField_replaceSelectedTextExample() { myTextField1.x = 10; myTextField1.width = 300; myTextField1.height = 50; myTextField1.background = true; myTextField1.border = true; myTextField1.text = "Select the text you want to remove from the line."; myTextField2.x = 10; myTextField2.y = 60; myTextField2.width = 300; myTextField2.height = 50; myTextField2.background = true; myTextField2.border = true; myTextField2.text = "Select the text you want to replace with NEW TEXT."; myTextField1.addEventListener(MouseEvent.MOUSE_UP, mouseHandler1); myTextField2.addEventListener(MouseEvent.MOUSE_UP, mouseHandler2); this.addChild(myTextField1); this.addChild(myTextField2); } private function mouseHandler1(e:MouseEvent):void { myTextField1.replaceSelectedText(""); } private function mouseHandler2(e:MouseEvent):void { if(myTextField2.selectionBeginIndex != myTextField2.selectionEndIndex) { myTextField2.replaceSelectedText("NEW TEXT"); } } } }
flash.display.Stage.focus
replaceText Ersetzt den Zeichenbereich, der durch die Parameter „beginIndex“ und „endIndex“ angegeben wird, durch den Inhalt des Parameters „newText“.Diese Methode kann bei einem Textfeld mit Stylesheet nicht verwendet werden. ErrorErrorbeginIndexintDer auf Null basierende Indexwert für die Startposition des Ersetzungsbereichs. endIndexintDie auf null basierende Indexposition des ersten Zeichens nach dem gewünschten Textabschnitt. newTextStringDer Text, durch den der angegebene Zeichenbereich ersetzt werden soll. Ersetzt einen Zeichenbereich. Ersetzt den Zeichenbereich, der durch die Parameter beginIndex und endIndex angegeben wird, durch den Inhalt des Parameters newText. Wie geplant wird der Text ab beginIndex bis endIndex-1 ersetzt.

Hinweis: Diese Methode funktioniert nicht, wenn ein Stylesheet auf das Textfeld angewendet wird.

Im folgenden Beispiel wird die replaceText()-Methode verwendet, um Text in einem Textfeld zu löschen, zu ersetzen und einzufügen.

Das Textfeld outputText wird so eingerichtet, dass es sich an den Text anpasst und links ausgerichteten Text anzeigt. Mit dem ersten Aufruf der replaceText()-Methode wird die erste Zeile („This is the wrong heading“) durch „THIS IS THE HEADING FOR EVERYONE“ ersetzt. Mit dem zweiten Aufruf der Methode wird der Text „CORRECT“ zwischen „THE“ und „HEADING“ eingefügt. Mit dem dritten Aufruf der Methode werden die Worte „FOR EVERYONE“ gelöscht. Beachten Sie, dass mit jedem Aufruf der appendText()-Methode der Anfangs- und Endindex des Textes geändert wird. Hier wird nur der endgültige Text (nachdem alle Änderungen vorgenommen wurden) angezeigt.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_replaceTextExample extends Sprite { public function TextField_replaceTextExample() { var outputText:TextField = new TextField(); outputText.x = 10; outputText.y = 10; outputText.background = true; outputText.autoSize = TextFieldAutoSize.LEFT; outputText.appendText("This is the wrong heading"); outputText.appendText("\n\n"); outputText.appendText("This is the body of the text."); outputText.replaceText(0, 25, "THIS IS THE HEADING FOR EVERYONE"); outputText.replaceText(12, 12, "CORRECT "); outputText.replaceText(27, 40, ""); this.addChild(outputText); } } }
setSelection Legt den durch die Indexwerte des ersten und letzten Zeichens (Parameter „beginIndex und „endIndex“) angegebenen Text als ausgewählt fest.beginIndexintDer auf null basierende Indexwert für das erste Zeichen der Auswahl (d. h., das erste Zeichen ist 0, das zweite Zeichen 1 usw.). endIndexintDer auf null basierende Indexwert des letzten Zeichens in der Auswahl. Legt eine neue Textauswahl fest. Legt den durch die Indexwerte des ersten und letzten Zeichens (Parameter beginIndex und endIndex) angegebenen Text als ausgewählt fest. Wenn die beiden Parameterwerte gleich sind, setzt diese Methode den Einfügepunkt (so als ob Sie die caretIndex-Eigenschaft setzen). Wenn der Benutzer im folgenden Beispiel auf eine beliebige Stelle im Textfeld klickt, wird ein vordefinierter Textbereich ausgewählt (der die Wörter „TEXT IN ALL CAPS“ hervorhebt).

Zwei Ereignis-Listener für das Textfeld myTextField antworten auf das Betätigen bzw. auf das Loslassen der Maustaste durch den Benutzer. „Mouse up“ tritt ein, wenn der Benutzer die Maustaste loslässt, ein Ereignis, das normalerweise nach der Auswahl eines Textabschnitts vorkommt. Beachten Sie, dass die Standardeinstellung eines Textfelds vorsieht, dass der darin befindliche Text ausgewählt werden kann. Wenn auf Text geklickt wird, wird die clickHandler()-Methode aufgerufen. Wenn Text ausgewählt wurde und die Maustaste losgelassen wird, wird die mouseUpHandler()-Methode aufgerufen.

In beiden Methoden, clickHandler() und mouseUpHandler(), legt die setSelection()-Methode nur die Zeichen zwischen den Indizes 54 und 70 (TEXT IN ALL CAPS) als ausgewählt fest.

package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_setSelectionExample extends Sprite { private var myTextField:TextField = new TextField(); public function TextField_setSelectionExample() { myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.text = "No matter where you click on this text field only the TEXT IN ALL CAPS is selected."; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); myTextField.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); this.addChild(myTextField); } private function clickHandler(event:MouseEvent):void { myTextField.setSelection(54, 70); } private function mouseUpHandler(event:MouseEvent):void { myTextField.setSelection(54, 70); } } }
selectableselectionBeginIndexselectionEndIndexcaretIndex
setTextFormat Weist dem angegebenen Text in einem Textfeld die mit dem Parameter „format“ angegebene Textformatierung zu.Diese Methode kann bei einem Textfeld mit Stylesheet nicht verwendet werden. ErrorErrorDer angegebene beginIndex bzw. endIndex befindet sich nicht im gültigen Bereich. RangeErrorRangeErrorformatflash.text:TextFormatEin TextFormat-Objekt, das sowohl Zeichen- als auch Absatzformatierungsinformationen enthält. beginIndexint-1Optional; eine Ganzzahl, die die auf null basierende Indexposition angibt, die ihrerseits das erste Zeichen im gewünschten Textbereich angibt. endIndexint-1Optional; eine Ganzzahl zur Angabe des ersten Zeichens nach dem gewünschten Textbereich. Wenn Sie die Werte beginIndex und endIndex angeben, wird wie gewünscht der Text von beginIndex bis endIndex-1 aktualisiert.

VerwendungBeschreibungmy_textField.setTextFormat(textFormat:TextFormat)Wendet die Eigenschaften von textFormat auf den gesamten Text im Textfeld an.my_textField.setTextFormat(textFormat:TextFormat, beginIndex:int)Wendet die Eigenschaften von textFormat auf den Text an, der an der Position beginIndex beginnt.my_textField.setTextFormat(textFormat:TextFormat, beginIndex:int, endIndex:int)Wendet die Eigenschaften von textFormat auf den Textbereich zwischen beginIndex und endIndex-1 an.

Beachten Sie, dass manuell vom Benutzer eingefügter oder mit der replaceSelectedText()-Methode ersetzter Text nicht die für die Texteinfügemarke angegebene Formatierung, sondern die Standardformatierung für neuen Text des Textfelds erhält. Wenn Sie die Standardformatierung eines Textfelds für neuen Text definieren möchten, verwenden Sie die Eigenschaft defaultTextFormat.

Wendet Textformatierung an.
Weist dem angegebenen Text in einem Textfeld die mit dem Parameter format angegebene Textformatierung zu. Der Wert des Parameters format muss ein TextFormat-Objekt mit den gewünschten Änderungen bei der Textformatierung sein. Nur die Eigenschaften von format, die nicht null lauten, werden dem Textfeld zugewiesen. Eigenschaften von format, die auf null gesetzt wurden, werden nicht zugewiesen. Standardmäßig sind alle Eigenschaften eines neu erstellten TextFormat-Objekts auf null gesetzt.

Hinweis: Diese Methode funktioniert nicht, wenn ein Stylesheet auf das Textfeld angewendet wird.

Mit der Methode setTextFormat() wird das Textformat geändert, das auf einen Zeichenbereich oder den gesamten Text in einem Textfeld angewendet wird. Geben Sie keine Werte für beginIndex und endIndex an, wenn die Eigenschaften des Formats auf den kompletten Text im Textfeld angewendet werden sollen. Wenn Sie die Eigenschaften des Formats auf einen Textbereich anwenden möchten, geben Sie Werte für die Parameter beginIndex und endIndex an. Mit der Eigenschaft length können Sie die Indexwerte bestimmen.

Die beiden Arten von Formatierungsinformationen in einem TextFormat-Objekt sind Formatierungen auf Zeichen- und auf Absatzebene. Jedes Zeichen in einem Textfeld kann seine eigenen Zeichenformatierungseinstellungen (z. B. Schriftname, Schriftgrad, fett und kursiv) haben.

Bei Absätzen wird das erste Zeichen im Absatz auf die für den gesamten Absatz geltenden Absatzformatierungseinstellungen überprüft. Es gibt unter anderem folgende Absatzformatierungseinstellungen: linker Rand, rechter Rand und Einzug.

Jeder Text, der manuell vom Benutzer eingefügt oder durch die replaceSelectedText()-Methode ersetzt wird, erhält die Textfeld-Standardformatierung für neuen Text und nicht die Formatierung, die für den Texteinfügepunkt angegeben ist. Um die Standardformatierung für neuen Text festzulegen, verwenden Sie defaultTextFormat.

Im folgenden Beispiel wechselt beim Klicken auf den Text ein definierter Textbereich, „TEXT IN ALL CAPS“ zwischen dem Standardtextformat und dem neuen Format.

Es wird ein Ereignis-Listener für das Textfeld myTextField hinzugefügt, das auf Mausklicks reagiert, indem die clickHandler()-Methode aufgerufen wird. In der clickHandler()-Methode gibt die getTextFormat()-Methode das aktuelle Format eines Zeichens (Index 55) aus dem eingerückten Bereich des Texts zurück, welches dann in das TextFormat-Objekt currentTextFormat platziert wird. Die if-Anweisung überprüft das Textformat currentTextFormat, um festzustellen, ob die Zeichen in dem Bereich das neue Format verwenden (Schriftgröße 18 Punkt). Ist dies nicht der Fall, ändert das neue Format die Größe auf 18 Punkt, die Farbe auf Rot und wendet die Formate Unterstrichen und Kursiv auf den Bereich zwischen 54 und 70 (TEXT IN ALL CAPS) an. Wenn das Zeichen in dem Bereich das neue Format verwendet, wird das Format des Bereichs auf das Standardformat (das ursprüngliche Format) des Textfelds zurückgesetzt.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; public class TextField_setTextFormatExample extends Sprite { private var myTextField:TextField = new TextField(); private var newFormat:TextFormat = new TextFormat(); public function TextField_setTextFormatExample() { myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.selectable = false; myTextField.background = true; myTextField.text = "No matter where you click on this text field only the TEXT IN ALL CAPS changes format."; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); newFormat.color = 0xFF0000; newFormat.size = 18; newFormat.underline = true; newFormat.italic = true; this.addChild(myTextField); } private function clickHandler(event:MouseEvent):void { var currentTextFormat:TextFormat = myTextField.getTextFormat(55); if(currentTextFormat.size != 18) { myTextField.setTextFormat(newFormat, 54, 70); } else { myTextField.setTextFormat(myTextField.defaultTextFormat); } } } }
flash.text.TextFormatflash.text.TextField.defaultTextFormat
alwaysShowSelection Wenn sich das Textfeld bei Einstellung „true“ nicht im Fokus befindet, markiert Flash Player die Auswahl im Textfeld in grau.Booleanfalse Wenn sich das Textfeld bei Einstellung true nicht im Fokus befindet, markiert Flash Player die Auswahl im Textfeld in grau. Wenn sich das Textfeld bei Einstellung false nicht im Fokus befindet, markiert Flash Player die Auswahl im Textfeld nicht. Kompilieren Sie die folgende Datei, und führen Sie sie aus. Wenn Sie die Datei ausführen, ziehen Sie den Text in beide Textfelder, um ihn auszuwählen. Achten Sie auf den Unterschied bei der Markierung der Auswahl, wenn Sie Text in den beiden Textfeldern auswählen (und damit den Fokus ändern): package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_alwaysShowSelection extends Sprite { public function TextField_alwaysShowSelection() { var label1:TextField = createCustomTextField(0, 20, 200, 20); label1.text = "This text is selected."; label1.setSelection(0, 9); label1.alwaysShowSelection = true; var label2:TextField = createCustomTextField(0, 50, 200, 20); label2.text = "Drag to select some of this text."; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } } flash.display.Stage.focusantiAliasType Der für dieses Textfeld verwendete Anti-Aliasing-Typ.StringDer verwendete Anti-Aliasing-Typ. Der für dieses Textfeld verwendete Anti-Aliasing-Typ. Verwenden Sie flash.text.AntiAliasType-Konstanten für diese Eigenschaft. Sie können diese Einstellung nur dann steuern, wenn die Schriftart eingebettet ist (die Eigenschaft embedFonts ist auf true gesetzt). Die Standardeinstellung ist flash.text.AntiAliasType.NORMAL.

Wenn Sie Werte für diese Eigenschaft definieren möchten, verwenden Sie die folgenden Stringwerte:

StringwertBeschreibungflash.text.AntiAliasType.NORMALWendet das normale Text-Anti-Aliasing an. Dieser Wert entspricht dem Anti-Aliasing-Typ, den Flash Player 7 und frühere Versionen verwendeten.flash.text.AntiAliasType.ADVANCEDWendet erweitertes Anti-Aliasing an, sodass der Text besser lesbar ist. (Diese Funktion ist seit Flash Player 8 verfügbar.) Erweitertes Anti-Aliasing ermöglicht die hochwertige Wiedergabe von kleinen Schriftarten. Es eignet sich am besten für Anwendungen mit sehr viel kleinem Text. Das erweiterte Anti-Aliasing bietet sich hingegen nicht für große Schriften (über 48 Punkte) an.
flash.text.AntiAliasTypeflash.text.TextField.embedFonts
autoSize Steuert die automatische Größenänderung und Ausrichtung von Textfeldern.StringDer angegebene autoSize-Wert gehört nicht zu „flash.text.TextFieldAutoSize“. ArgumentErrorArgumentErrorSteuert die automatische Größenänderung und Ausrichtung von Textfeldern. Steuert die automatische Größenänderung und Ausrichtung von Textfeldern. Zulässige Werte für die TextFieldAutoSize-Konstanten: TextFieldAutoSize.NONE (Standard), TextFieldAutoSize.LEFT, TextFieldAutoSize.RIGHT und TextFieldAutoSize.CENTER.

Wurde autoSize auf den Standardwert TextFieldAutoSize.NONE gesetzt, erfolgt keine Größenänderung.

Wurde autoSize auf TextFieldAutoSize.LEFT gesetzt, wird der Text als linksbündiger Text behandelt, d. h., die linke Seite des Textfelds bleibt fixiert, und Größenänderungen eines einzeiligen Textfelds werden auf der rechten Seite vorgenommen. Wenn Text einen Zeilenumbruch enthält (z. B. "\n" oder "\r"), wird die unterste Zeile ebenfalls so geändert, dass die nächste Textzeile eingefügt werden kann. Wenn wordWrap ebenfalls auf true eingestellt ist, wird nur die Größe der untersten Zeile des Textfelds geändert, die rechte Seite bleibt dagegen unverändert.

Wurde autoSize auf TextFieldAutoSize.RIGHT gesetzt, wird der Text als rechtsbündiger Text behandelt, d. h., die rechte Seite des Textfelds bleibt fixiert, und Größenänderungen eines einzeiligen Textfelds werden auf der linken Seite vorgenommen. Wenn Text einen Zeilenumbruch enthält (z. B. "\n" oder "\r"), wird die unterste Zeile ebenfalls so geändert, dass die nächste Textzeile eingefügt werden kann. Wenn wordWrap ebenfalls auf true eingestellt ist, wird nur die Größe der untersten Zeile des Textfelds geändert, die linke Seite bleibt dagegen unverändert.

Wurde autoSize auf TextFieldAutoSize.CENTER gesetzt, wird der Text als zentriert behandelt, d. h., eine Änderung der Größe eines einzeiligen Textfelds wird gleichmäßig auf den rechten und linken Rand verteilt. Wenn Text einen Zeilenumbruch enthält (z. B. "\n" oder "\r"), wird die unterste Zeile ebenfalls so geändert, dass die nächste Textzeile eingefügt werden kann. Wenn wordWrap ebenfalls auf true eingestellt ist, wird nur die Größe der untersten Zeile des Textfelds geändert, die linke und rechte Seite bleiben dagegen unverändert.

flash.text.TextFieldAutoSizeflash.text.TextField.autoSizeflash.text.TextField.wordWrap
backgroundColor Gibt die Hintergrundfarbe des Textfelds an.uint Gibt die Hintergrundfarbe des Textfelds an. Der Standardwert ist 0xFFFFFF (weiß). Diese Eigenschaft kann abgerufen oder eingestellt werden, selbst wenn derzeit kein Hintergrund verwendet wird. Die Farbe ist jedoch nur dann sichtbar, wenn die Eigenschaft background des Textfelds true ist. flash.text.TextField.backgroundbackground Gibt an, ob das Textfeld einen gefüllten Hintergrund aufweist.Booleanfalse Gibt an, ob das Textfeld einen gefüllten Hintergrund aufweist. Bei true weist das Textfeld einen gefüllten Hintergrund auf. Bei false weist das Textfeld keinen gefüllten Hintergrund auf. Mit der Eigenschaft backgroundColor legen Sie die Hintergrundfarbe eines Textfelds fest. flash.text.TextField.backgroundColorborderColor Gibt die Farbe des Textfeldrahmens an.uint Gibt die Farbe des Textfeldrahmens an. Der Standardwert ist 0x000000 (schwarz). Diese Eigenschaft kann abgerufen oder eingestellt werden, selbst wenn derzeit kein Rahmen verwendet wird. Die Farbe ist jedoch nur dann sichtbar, wenn die Eigenschaft border des Textfelds true ist. flash.text.TextField.borderborder Gibt an, ob das Textfeld umrahmt ist.Booleanfalse Gibt an, ob das Textfeld umrahmt ist. Bei true ist das Textfeld umrahmt. Bei false weist das Textfeld keinen Rahmen auf. Mit der Eigenschaft borderColor können Sie die Rahmenfarbe festlegen. flash.text.TextField.borderColorbottomScrollV Eine Ganzzahl (Index mit Basis 1), die die unterste der im angegebenen Textfeld sichtbaren Zeilen angibt.intEine Ganzzahl, mit der die unterste Zeile in einem Textfeld angegeben wird. Eine Ganzzahl (Index mit Basis 1), die die unterste der im angegebenen Textfeld sichtbaren Zeilen angibt. Das Textfeld kann als Fenster zur Anzeige eines Textblocks betrachtet werden. Die Eigenschaft scrollV ist der auf eins basierende Index der obersten sichtbaren Zeile im Fenster.

Der gesamte Text zwischen den durch scrollV und bottomScrollV begrenzten Zeilen ist zurzeit im Textfeld sichtbar.

flash.text.TextField.scrollV
caretIndex Der Index der Position der Einfügemarke.intGibt den auf null basierenden Indexwert der blinkenden Einfügemarke zurück. Der Index der Position der Einfügemarke. Wenn keine Einfügemarke angezeigt wird, ergibt sich der Wert aus der Position, die die Einfügemarke erhält, wenn das Feld den Fokus zurückerlangt (normalerweise die Stelle, an der sich die Einfügemarke zuvor befunden hat, oder 0, wenn das Feld bislang nicht den Fokus hatte).

Indizes für Auswahlbereiche haben die Basis null (d. h. die erste Position ist 0, die zweite Position 1 usw.).

In diesem Beispiel wird eine TextField-Instanz erstellt und mit Text gefüllt. Es wird ein Ereignis-Listener zugewiesen, damit die printCursorPosition-Methode aufgerufen wird, sobald der Benutzer auf die TextField-Instanz klickt. In diesem Fall werden die Werte der Eigenschaften caretIndex, selectionBeginIndex und selectionEndIndex ausgegeben.

Führen Sie dieses Beispiel aus, und versuchen Sie, durch Klicken in die TextField-Instanz Text auszuwählen. Klicken Sie anschließend in das Feld, ohne Text auszuwählen. Wenn Sie in den Text klicken, ohne eine Auswahl vorzunehmen, gibt die Eigenschaft caretIndex an, wo sich die Einfügemarke befindet, und die Eigenschaften selectionBeginIndex und selectionEndIndex sind identisch mit dem Wert der Eigenschaft caretIndex.

package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_caretIndex extends Sprite { public function TextField_caretIndex() { var tf:TextField = createCustomTextField(10, 10, 100, 100); tf.wordWrap = true; tf.type = TextFieldType.INPUT; tf.text = "Click in this text field. Compare the difference between clicking without selecting versus clicking and selecting text."; tf.addEventListener(MouseEvent.CLICK, printCursorPosition); } private function printCursorPosition(event:MouseEvent):void { var tf:TextField = TextField(event.target); trace("caretIndex:", tf.caretIndex); trace("selectionBeginIndex:", tf.selectionBeginIndex); trace("selectionEndIndex:", tf.selectionEndIndex); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
selectableselectionBeginIndexselectionEndIndex
condenseWhite Ein boolescher Wert, der angibt, ob zusätzliche Leerräume (beispielsweise Leerzeichen oder Zeilenumbrüche) aus einem Textfeld mit HTML-Text entfernt werden sollen.BooleanEin boolescher Wert, mit dem zusätzlicher Leerraum aus einem HTML-Textfeld entfernt wird. Ein boolescher Wert, der angibt, ob zusätzliche Leerräume (beispielsweise Leerzeichen oder Zeilenumbrüche) aus einem Textfeld mit HTML-Text entfernt werden sollen. Der Standardwert ist false. Die Eigenschaft condenseWhite betrifft nur Text mit der Eigenschaft htmlText, nicht mit der Eigenschaft text. Wenn Sie Text mit der Eigenschaft text festlegen, wird condenseWhite ignoriert.

Wenn condenseWhite auf true gesetzt ist, verwenden Sie HTML-Standardbefehle wie <BR> und <P>, um in das Textfeld Zeilenumbrüche einzufügen.

Legen Sie die Eigenschaft condenseWhite fest, bevor Sie die Eigenschaft htmlText festlegen.

Aus dem folgenden Beispiel geht der Unterschied zwischen der Einstellung false und true für condenseWhite hervor: package { import flash.display.Sprite; import flash.text.TextField; public class TextField_condenseWhite extends Sprite { public function TextField_condenseWhite() { var tf1:TextField = createCustomTextField(0, 0, 200, 50); tf1.condenseWhite = false; tf1.htmlText = "keep on\n\ttruckin'"; var tf2:TextField = createCustomTextField(0, 120, 200, 50); tf2.condenseWhite = true; tf2.htmlText = "keep on\n\ttruckin'"; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.border = true; addChild(result); return result; } } }
flash.text.TextField.htmlText
defaultTextFormat 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.flash.text:TextFormatDiese Methode kann bei einem Textfeld mit Stylesheet nicht verwendet werden. ErrorErrorGibt das Textformat für neu eingefügten Text an. 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.

Hinweis: Wenn Zeichen ausgewählt werden, die mit setSelection() und replaceSelectedText() ersetzt werden sollen, wird das defaultTextFormat nur angewendet, wenn der Text bis zu und einschließlich dem letzten Zeichen ausgewählt wurde. Hier ist ein Beispiel:

     var my_txt:TextField new TextField();
     my_txt.text = "Flash Macintosh version";
     var my_fmt:TextFormat = new TextFormat();
     my_fmt.color = 0xFF0000;
     my_txt.defaultTextFormat = my_fmt;
     my_txt.setSelection(6,15); // partial text selected - defaultTextFormat not applied
     my_txt.setSelection(6,23); // text selected to end - defaultTextFormat applied
     my_txt.replaceSelectedText("Windows version");
     

Bei Aufruf der Eigenschaft defaultTextFormat sind alle Eigenschaften des zurückgegebenen TextFormat-Objekts definiert. Keine Eigenschaft besitzt den Wert null.

Hinweis: Diese Eigenschaft kann nicht festgelegt werden, wenn ein Stylesheet auf das Textfeld angewendet wird.

flash.text.TextField.replaceSelectedText()flash.text.TextField.getTextFormat()flash.text.TextField.setTextFormat()
displayAsPassword Gibt an, ob es sich um ein Kennworttextfeld handelt.Booleanfalse Gibt an, ob Eingabezeichen verborgen sind. Gibt an, ob es sich um ein Kennworttextfeld handelt. Weist die Eigenschaft den Wert true auf, handelt es sich um ein Kennworttextfeld, und statt der eingegebenen Zeichen werden Sternchen angezeigt. Bei false handelt es sich nicht um ein Kennworttextfeld. Wenn der Kennwortmodus aktiviert ist, können die Befehle „Ausschneiden“ und „Kopieren“ sowie die entsprechenden Tastaturbefehle nicht verwendet werden. Dieser Sicherheitsmechanismus verhindert, dass skrupellose Benutzer anhand des Tastaturbefehls das Kennwort eines unbeaufsichtigten Computers herausfinden. embedFonts Gibt an, ob bei der Wiedergabe eingebettete Schriftkonturen verwendet werden sollen.Booleanfalse Das Textfeld wird mit Schriftkonturen oder Geräteschriftarten wiedergegeben. Gibt an, ob bei der Wiedergabe eingebettete Schriftkonturen verwendet werden sollen. Bei false wird das Textfeld mit Geräteschriftarten dargestellt.

Wenn Sie die Eigenschaft embedFonts für ein Textfeld auf true setzen, müssen Sie für diesen Text mit der Eigenschaft font eines auf das Textfeld angewendeten TextFormat-Objekts eine Schriftart angeben. Wenn die angegebene Schriftart nicht in der SWF-Datei eingebettet ist, wird der Text nicht angezeigt.

Font.enumerateFonts()
gridFitType Die für dieses Textfeld verwendete Art der Rasteranpassung.Stringpixel Die verwendete Art der Rasteranpassung. Die für dieses Textfeld verwendete Art der Rasteranpassung. Diese Eigenschaft gilt nur dann, wenn die Eigenschaft flash.text.AntiAliasType des Textfelds auf flash.text.AntiAliasType.ADVANCED gesetzt ist.

Anhand der verwendeten Art der Rasteranpassung wird bestimmt, ob Flash Player breite horizontale und vertikale Linien an ein Pixel- oder Subpixelraster anpasst.

Für die Eigenschaft flash.text.GridFitType können Sie die folgenden Stringwerte verwenden:

StringwertBeschreibungflash.text.GridFitType.NONEDefiniert keine Rasteranpassung. Horizontale und vertikale Linien in den Glyphen werden nicht am Pixelraster ausgerichtet. Diese Einstellung wird für Animationen und große Schriftgrade empfohlen.flash.text.GridFitType.PIXELDefiniert die Anpassung breiter horizontaler und vertikaler Linien an das Pixelraster. Diese Einstellung funktioniert nur für linksbündig ausgerichtete Textfelder. Wenn Sie diese Einstellung nutzen möchten, muss die Eigenschaft flash.display.AntiAliasType des Textfelds auf flash.text.AntiAliasType.ADVANCED gesetzt sein. Diese Einstellung bietet im Allgemeinen die beste Lesbarkeit für linksbündigen Text.flash.text.GridFitType.SUBPIXELBreite horizontale und vertikale Linien werden an das Sub-Pixelraster auf LCD-Displays angepasst. Wenn Sie diese Einstellung nutzen möchten, muss die Eigenschaft flash.text.AntiAliasType des Textfelds auf flash.text.AntiAliasType.ADVANCED gesetzt sein. Die Einstellung flash.text.GridFitType.SUBPIXEL 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.
Das folgende Beispiel zeigt drei Textfelder mit verschiedenen Einstellungen für die gridFitType-Eigenschaft. Achten Sie bei diesem Beispiel auf den Unterschied in der Lesbarkeit der ersten beiden Zeilen. Beachten Sie auch die optimale Verwendung von GridFitType.PIXEL für link ausgerichteten Text und GridFitType.SUBPIXEL für rechts ausgerichteten Text. package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.GridFitType; public class gridFitTypeExample extends Sprite { public function gridFitTypeExample() { var format1:TextFormat = new TextFormat(); format1.font="Arial"; format1.size=12; var tf1:TextField = createCustomTextField(0,0,format1,"NONE",TextFieldAutoSize.LEFT,GridFitType.NONE); var tf2:TextField = createCustomTextField(0,30,format1,"PIXEL",TextFieldAutoSize.LEFT,GridFitType.PIXEL); var tf3:TextField = createCustomTextField(300,60,format1,"SUBPIXEL",TextFieldAutoSize.RIGHT,GridFitType.SUBPIXEL); } private function createCustomTextField(x:Number,y:Number,fm:TextFormat,tl:String,tfs:String,gft:String):TextField { var result:TextField = new TextField(); result.x=x; result.y=y; result.embedFonts=true; result.antiAliasType=AntiAliasType.ADVANCED; result.text="This text uses a gridFitType of " + tl; result.autoSize=tfs; result.gridFitType=gft; result.setTextFormat(fm); addChild(result); return result; } } }
flash.text.GridFitTypeflash.text.TextField.antiAliasTypeflash.text.AntiAliasType
htmlText Enthält die HTML-Darstellung des Inhalts des Textfelds.StringDie HTML-Darstellung des Inhalts des Textfelds. Enthält die HTML-Darstellung des Inhalts des Textfelds.

Flash Player unterstützt die folgenden HTML-Tags:

Tag Beschreibung Anker-Tag Mit dem Tag <a> wird ein Hyperlink erstellt. Das Tag unterstützt die folgenden Attribute:
  • target: Gibt den Namen des Zielfensters an, in das die Seite geladen werden soll. Folgende Optionen stehen zur Verfügung: _self, _blank, _parent und _top. Mit der Option _self wird der aktuelle Frame im aktuellen Fenster angegeben, mit _blank ein neues Fenster, mit _parent der dem aktuellen Frame übergeordnete Frame und mit _top der Frame der obersten Stufe im aktuellen Fenster.
  • href: Legt eine URL oder ein ActionScript link-Ereignis fest. Die URL kann ein absoluter oder relativer Pfad zum Speicherort der SWF-Datei sein, von der die Seite geladen wird. Ein Beispiel für einen absoluten Verweis auf eine URL ist http://www.adobe.com, während /index.html ein relativer Verweis ist. Absolute URLs müssen mit dem Präfix http:// versehen sein, da Flash Player bzw. AIR sie ansonsten als relative URLs behandelt. Sie können mit dem Ereignis link festlegen, dass der Link eine ActionScript-Funktion in einer SWF-Datei ausführt, anstatt eine URL zu öffnen. Um ein link-Ereignis anzugeben, verwenden Sie das Ereignisschema anstelle des http-Schemas im href-Attribut. Ein Beispiel ist href="event:myText" anstelle von href="http://myURL"; wenn der Benutzer auf einen Hypertext-Link klickt, der das Ereignisschema enthält, löst das Textfeld ein link TextEvent aus, dessen text-Eigenschaft den Wert "myText" aufweist. Sie können dann eine ActionScript-Funktion erstellen, die ausgeführt wird, wann immer das link-TextEvent ausgelöst wird. Sie können auch mit Stylesheets die Stile a:link, a:hover und a:active für Anker-Tags definieren.
Fettdruck-Tag Mit dem Tag <b> wird Text fett dargestellt. Für die verwendete Schriftart muss ein fettes Schriftbild vorhanden sein. Zeilenumbruch-Tag Das Tag <br> fügt einen Zeilenumbruch in das Textfeld ein. Definieren Sie das Textfeld als mehrzeiliges Textfeld, um dieses Tag zu verwenden. Schriftart-Tag Mit dem Tag <font> legen Sie fest, welche Schriftarten für die Textanzeige verwendet werden. Die folgenden Attribute werden vom font-Tag unterstützt::
  • color: Es werden nur hexadezimale Farbwerte (#FFFFFF) unterstützt.
  • face: Gibt den Namen der zu verwendenden Schriftart an. Sie können wie im folgenden Beispiel dargestellt eine durch Kommas getrennte Liste von Schriftartnamen angeben. In diesem Fall wählt Flash Player die erste verfügbare Schriftart. Wenn die angegebene Schriftart nicht auf dem lokalen Computersystem installiert oder nicht in der SWF-Datei eingebettet ist, wählt Flash Player eine Ersatzschriftart aus.
  • size: Gibt die Größe der Schriftart an. Sie können absolute Pixelgrößen wie 16 oder 18 oder relative Punktgrößen wie +2 und -4 verwenden.
Bild-Tag Mit dem Tag <img> können Sie externe Bilddateien (JPEG, GIF, PNG), SWF-Dateien und Movieclips in Textfelder einbetten. Text fließt automatisch um in Textfelder eingebettete Bilder herum. Sie müssen das Textfeld als mehrzeilig definieren, um Text um ein Bild fließen zu lassen.

Die folgenden Attribute werden vom <img>-Tag unterstützt:

  • src: Definiert die URL zu einer Bild- oder SWF-Datei bzw. den Verknüpfungsbezeichner eines Movieclip-Symbols in der Bibliothek. Dieses Attribut ist erforderlich. Alle anderen sind optional. Externe Dateien (JPEG, GIF, PNG und SWF) werden erst dann angezeigt, wenn sie komplett heruntergeladen worden sind.
  • width: Die Breite des einzufügenden Bilds, der SWF-Datei oder des Movieclips in Pixel.
  • height: Die Höhe des einzufügenden Bilds, der SWF-Datei oder des Movieclips in Pixel.
  • align: Legt die horizontale Ausrichtung des eingebetteten Bilds im Textfeld fest. Gültige Werte sind left und right. Der Standardwert ist left.
  • hspace: Legt die Größe des horizontalen Bereichs um das Bild fest, in dem kein Text zu sehen ist. Der Standardwert ist 8.
  • vspace: Legt die Größe des vertikalen Bereichs um das Bild fest, in dem kein Text zu sehen ist. Der Standardwert ist 8.
  • id: Definiert den Namen der Movieclip-Instanz (von Flash Player erstellt), die die eingebettete Bild- oder SWF-Datei bzw. den Movieclip enthält. Diese Methode wird verwendet, um den eingebetteten Inhalt mit ActionScript zu steuern.
  • checkPolicyFile: Gibt an, dass Flash Player nach einer URL-Richtliniendatei auf dem Server suchen soll, der mit der Bilddomäne verknüpft ist. Wenn eine Richtliniendatei existiert, können SWF-Dateien in den Domänen, die in der Datei aufgelistet sind, auf die Daten des geladenen Bildes zugreifen, indem sie beispielsweise die BitmapData.draw()-Methode mit diesem Bild als source-Parameter aufrufen. Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Medieninhalte, die in Textfelder eingebettet sind, werden in voller Größe angezeigt. Um die Abmessung der Medien anzugeben, die Sie einbetten, verwenden Sie das <img>-Tag und das height- und width-Attribut.

Im Allgemeinen wird ein in ein Textfeld eingebettetes Bild in der Zeile nach dem Tag <img> angezeigt. Ist jedoch das <img>-Tag das erste Zeichen im Textfeld, erscheint das Bild dort in der ersten Zeile.

Wenn sich in der Sicherheitssandbox der Anwendung AIR-Inhalt befindet, ignoriert AIR img-Tags im HTML-Inhalt in ActionScript TextField-Objekten. Hierdurch werden eventuelle Phishing-Angriffe verhindert.

Kursiv-Tag Mit dem <i>-Tag markierter Text wird kursiv angezeigt. Für die verwendete Schriftart muss ein kursives Schriftbild vorhanden sein. Listenelement-Tag Das Tag <li> sorgt dafür, dass vor dem Text, der vom Tag umschlossen ist, ein Aufzählungszeichen platziert wird. Hinweis: Dae Flash Player und AIR sortierte und unsortierte Listen-Tags (<ol> und <ul> nicht erkennen, ändern sie nicht, wie Ihre Liste wiedergegeben wird. Alle Listen werden unsortiert und mit Aufzählungszeichen vor jedem einzelnen Element angezeigt. Absatz-Tag Mit dem Tag <p> wird ein neuer Absatz erstellt. Das Textfeld muss als mehrzeiliges Textfeld definiert werden, um dieses Tag zu verwenden. Die folgenden Attribute werden vom <p>-Tag unterstützt:
  • align: Gibt die Ausrichtung des Texts innerhalb des Absatzes an. Gültige Werte sind left, right, justify und center.
  • class: Legt eine von einem flash.text.StyleSheet-Objekt definierte CSS-Stilklasse fest.
Bereichs-Tag Das Tag <span> ist nur im Einsatz mit CSS-Textstilen verfügbar. Das folgende Attribut wird dabei unterstützt:
  • class: Legt eine von einem flash.text.StyleSheet-Objekt definierte CSS-Stilklasse fest.
Textformat-Tag

Mit dem Tag <textformat> können Sie einige Eigenschaften der TextFormat-Klasse zur Absatzformatierung in Textfeldern nutzen. Dazu zählen Zeilenabstand, Einzug, Ränder und Tabstopps. Sie können das Tag <textformat> mit den integrierten HTML-Tags kombinieren.

Die folgenden Attribute werden vom Tag <textformat> unterstützt:

  • blockindent: Legt den Blockeinzug in Punkten fest; entspricht TextFormat.blockIndent.
  • indent: Legt den Einzug vom linken Rand bis zum ersten Zeichen im Absatz fest; entspricht TextFormat.indent. Es können positive und negative Werte verwendet werden.
  • leading: Legt den Zeilenabstand (vertikal) fest; entspricht TextFormat.leading. Es können positive und negative Werte verwendet werden.
  • leftmargin: Legt den linken Rand im Absatz in Punkten fest; entspricht TextFormat.leftMargin.
  • rightmargin: Legt den rechten Rand im Absatz in Punkten fest; entspricht TextFormat.rightMargin.
  • tabstops: Gibt benutzerdefinierte Tabstopps als Array aus nicht negativen Ganzzahlen an; entspricht TextFormat.tabStops.
Unterstreichungs-Tag Mit dem <u>-Tag markierter Text wird unterstrichen angezeigt.

Flash Player und AIR unterstützen die folgenden HTML-Entitäten:

Entität Beschreibung &amp;lt; < (kleiner als) &amp;gt; > (größer als) &amp;amp; & (Und-Zeichen) &amp;quot; " (doppelte Anführungszeichen) &amp;apos; ' (Apostroph, einfaches Anführungszeichen)

Flash Player und AIR unterstützen auch explizite Zeichencodes wie z. B. &#38; (Und-Zeichen, ASCII) und &#x20AC; ( €-Symbol, Unicode).

Im folgenden Beispiel wird ein TextField-Objekt mit der Bezeichnung tf1 erstellt, und der Eigenschaft text wird ein String im HTML-Format zugewiesen. Wenn die Eigenschaft htmlText nachverfolgt wird, wird der String im HTML-Format mit zusätzlichen Tags (z. B. <P> und <FONT>) automatisch von Flash Player hinzugefügt. Wenn der Wert der Eigenschaft text nachverfolgt wird, wird der unformatierte String ohne HTML-Tags angezeigt.

Zum Vergleich werden die gleichen Schritte mit einem weiteren TextField-Objekt mit der Bezeichnung tf2. Zusätzlich wird der Eigenschaft styleSheet von tf2 ein StyleSheet-Objekt zugewiesen, bevor die Eigenschaft htmlText festgelegt wird. In diesem Fall enthält die Eigenschaft htmlText, wenn sie nachverfolgt wird, nur den genauen HTML-Text, der ursprünglich der Eigenschaft htmlText zugewiesen war. Es wurden keine zusätzlichen Tags von Flash Player eingefügt.

package { import flash.display.Sprite; import flash.text.StyleSheet; import flash.text.TextField; public class TextField_text extends Sprite { public function TextField_text() { var tf1:TextField = createCustomTextField(10, 10, 400, 22); tf1.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">&lt;b&gt;Lorem ipsum dolor sit amet.&lt;/b&gt;</FONT></P> trace("htmlText: " + tf1.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf1.text); var tf2:TextField = createCustomTextField(10, 50, 400, 22); tf2.styleSheet = new StyleSheet(); tf2.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <b>Lorem ipsum dolor sit amet.</b> trace("htmlText: " + tf2.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf2.text); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
flash.text.TextField.textflash.text.StyleSheetflash.events.TextEvent
length Die Anzahl der Zeichen in einem Textfeld.intDie Anzahl der Zeichen in einem Textfeld. Die Anzahl der Zeichen in einem Textfeld. Ein Steuerzeichen wie Tab (\t) zählt als ein Zeichen. maxChars Die von einem Benutzer festgelegte maximale Anzahl von Zeichen, die das Textfeld enthalten kann.int0 Die maximale Anzahl der Zeichen, die das Textfeld enthalten kann. Die von einem Benutzer festgelegte maximale Anzahl von Zeichen, die das Textfeld enthalten kann. Mit einem Skript kann mehr Text eingefügt werden, als die Eigenschaft maxChars zulässt. maxChars gibt lediglich an, wie viel Text ein Benutzer eingeben kann. Wenn der Wert dieser Eigenschaft 0 ist, können die Benutzer unbegrenzt viel Text eingeben. maxScrollH Der maximale Wert der Eigenschaft „scrollH“.intDer maximale Wert der Eigenschaft „scrollH“. Der maximale Wert der Eigenschaft scrollH. flash.text.TextField.scrollHmaxScrollV Der maximale Wert der Eigenschaft „scrollV“.intDer maximale Wert der Eigenschaft scrollV. Der maximale Wert der Eigenschaft scrollV. flash.text.TextField.scrollVmouseWheelEnabled 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.BooleanGibt an, ob Flash Player automatisch einen Bildlauf in mehrzeiligen Textfeldern durchführt. 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. Der Standardwert ist true. Diese Eigenschaft ist nützlich, wenn Sie verhindern möchten, dass in Textfeldern ein Bildlauf mit dem Mausrad durchgeführt wird oder wenn Sie Ihre eigene Bildlaufeigenschaften für Textfelder erstellen möchten. multiline Gibt an, ob das Feld ein mehrzeiliges Textfeld ist.Booleanfalse Gibt an, ob es sich um ein mehrzeiliges Textfeld handelt. Gibt an, ob das Feld ein mehrzeiliges Textfeld ist. Bei true ist das Textfeld mehrzeilig, bei false ist es einzeilig. In einem Feld des Typs TextFieldType.INPUT gibt der multiline-Wert an, ob die Enter-Taste eine neue Zeile erstellt (bei false wird die Enter-Taste ignoriert). Wenn Sie Text in ein TextField einfügen, dessen multiline-Wert auf false gesetzt ist, werden neue Zeilen aus dem Text entfernt. numLinesnumLines Gibt die Anzahl der Textzeilen in einem mehrzeiligen Textfeld an.intGibt die Anzahl der Textzeilen in einem mehrzeiligen Textfeld an. Gibt die Anzahl der Textzeilen in einem mehrzeiligen Textfeld an. Falls die Eigenschaft wordWrap auf true gesetzt ist, erhöht sich die Zeilenzahl beim Textumbruch. multilinewordWraprestrict Gibt die Zeichen an, die ein Benutzer in das Textfeld eingeben kann.Stringnull Die Menge der Zeichen, die ein Benutzer in ein Textfeld eingeben kann. Gibt die Zeichen an, die ein Benutzer in das Textfeld eingeben kann. Wenn die restrict-Eigenschaft auf null gesetzt ist, kann jedes beliebige Zeichen eingegeben werden. Wenn die restrict-Eigenschaft einen leeren String enthält, können keine Zeichen eingegeben werden. Weist die Eigenschaft restrict eine bestimmte Zeichenfolge als Wert auf, können nur diese Zeichen in das Textfeld eingegeben werden. Der String wird von links nach rechts gelesen. Sie können mithilfe eines Bindestrichs (-) einen Zeichenbereich angeben. Nur die Benutzerinteraktion ist beschränkt; ein Skript kann jeden Text in das Textfeld einfügen. Diese Eigenschaft wird nicht an die Optionen unter „Schriftarten einbetten“ im Eigenschafteninspektor angeglichen.

Wenn der String mit dem Einfügezeichen (^) beginnt, werden anfänglich alle Zeichen akzeptiert, aber nachfolgende Zeichen im String werden nicht in die Liste der zulässigen Zeichen aufgenommen. Wenn der String nicht mit dem Einfügezeichen (^) beginnt, werden anfänglich keine Zeichen akzeptiert, aber nachfolgende Zeichen im String werden in die Liste der zulässigen Zeichen aufgenommen.

Im folgenden Beispiel können nur Großbuchstaben, Leerzeichen und Zahlen in das Textfeld eingegeben werden:

     my_txt.restrict = "A-Z 0-9";
     

Im folgenden Beispiel werden alle Zeichen bis auf Kleinbuchstaben akzeptiert:

     my_txt.restrict = "^a-z";
     

Wenn Sie „^“ bzw. „-“ als normale Zeichen verwenden möchten, müssen Sie ihnen einen umgekehrten Schrägstrich (\) voranstellen. Zulässige Backslash-Folgen: \-, \^ oder \\. Der umgekehrte Schrägstrich muss ein echtes Zeichen im String sein; in ActionScript muss der umgekehrte Schrägstrich also doppelt eingegeben werden. Im folgenden Beispiel werden nur der Bindestrich (-) und das Einfügezeichen (^) zugelassen:

     my_txt.restrict = "\\-\\^";
     

Das Einfügezeichen (^) kann an jeder beliebigen Stelle im String verwendet werden, um Zeichen ein- oder auszuschließen. Im folgenden Beispiel werden alle Großbuchstaben außer Q akzeptiert:

     my_txt.restrict = "A-Z^Q";
     

Sie können die Escape-Sequenz \u verwenden, um restrict-Strings zu konstruieren. Im folgenden Beispiel werden nur die Zeichen zwischen ASCII 32 (Leerzeichen) und ASCII 126 (Tilde) akzeptiert:

     my_txt.restrict = "\u0020-\u007E";
     
scrollH Die aktuelle horizontale Bildlaufposition.intDie aktuelle horizontale Bildlaufposition. Die aktuelle horizontale Bildlaufposition. Ist die Eigenschaft scrollH auf 0 gesetzt, erfolgt kein horizontaler Bildlauf. Bei diesem Eigenschaftswert handelt es sich um eine Ganzzahl, die die horizontale Position in Pixeln angibt.

Die Maßeinheit für den horizontalen Bildlauf sind Pixel, die Maßeinheit für den vertikalen Bildlauf Zeilen. Der horizontale Bildlauf wird in Pixeln gemessen, da die am häufigsten verwendeten Schriftarten normalerweise Proportionalschriftarten sind, die unterschiedlich breite Zeichen aufweisen. Flash Player nimmt den vertikalen Bildlauf nach Zeilen vor, da Benutzer normalerweise eine Textzeile vollständig und nicht nur teilweise sehen möchten. Hierbei kommt es nicht darauf an, ob eine Zeile mehrere Schriftarten enthält, da die Höhe der Zeile immer an die größte verwendete Schriftart angepasst wird.

Hinweis: Die Eigenschaft scrollH basiert auf 0, nicht auf 1 wie die Eigenschaft scrollV für den vertikalen Bildlauf.

flash.text.TextField.maxScrollHflash.text.TextField.scrollV
scrollV Die vertikale Textposition in einem Textfeld.intDie vertikale Textposition in einem Textfeld. Die vertikale Textposition in einem Textfeld. Die Eigenschaft scrollV ist besonders nützlich, wenn Benutzer auf einen bestimmten Abschnitt in einem längeren Text hingewiesen werden sollen, und bietet sich auch zum Erstellen von Textfeldern an, in denen ein Bildlauf durchgeführt werden kann.

Die Maßeinheit für den vertikalen Bildlauf sind Zeilen, die Maßeinheit für den horizontalen Bildlauf Pixel. Wenn die erste angezeigte Zeile auch die erste Zeile im Textfeld ist, hat „scrollV“ den Wert 1 (nicht 0). Der horizontale Bildlauf wird in Pixeln gemessen, da die meisten Schriftarten Proportionalschriftarten sind, die unterschiedlich breite Zeichen aufweisen. Flash Player nimmt den vertikalen Bildlauf nach Zeilen vor, da Benutzer normalerweise eine Textzeile vollständig und nicht nur teilweise sehen möchten. Selbst wenn eine Zeile mehrere Schriftarten enthält, wird die Höhe der Zeile an die größte verwendete Schriftart angepasst.

flash.text.TextField.scrollHflash.text.TextField.maxScrollV
selectable Ein boolescher Wert, der angibt, ob das Textfeld ausgewählt werden kann.Booleantrue Gibt an, ob das Textfeld ausgewählt werden kann. Ein boolescher Wert, der angibt, ob das Textfeld ausgewählt werden kann. Bei true kann der Text ausgewählt werden. Die Eigenschaft selectable steuert, ob ein Textfeld ausgewählt werden kann, und nicht, ob es bearbeitet werden kann. Ein dynamisches Textfeld kann auswählbar sein, ohne dass es bearbeitet werden kann. Wenn ein dynamisches Textfeld nicht auswählbar ist, kann der enthaltene Text nicht ausgewählt werden.

Wenn selectable auf false gesetzt ist, kann der Text im Textfeld nicht über die Maus oder Tastatur mit den Auswahlbefehlen ausgewählt und daher nicht mit dem Befehl „Kopieren“ kopiert werden. Wenn selectable auf true gesetzt ist, kann der Text im Textfeld über die Maus oder Tastatur mit den Auswahlbefehlen ausgewählt und daher mit dem Befehl „Kopieren“ kopiert werden. In diesem Feld können Sie Text auch dann auswählen, wenn es sich um ein dynamisches Textfeld und nicht um ein Eingabetextfeld handelt.

Das folgende Beispiel erstellt zwei dynamische Textfelder: ein Textfeld, in dem die selectable-Eigenschaft auf true gesetzt ist, und ein anderes Textfeld, in dem die selectable-Eigenschaft auf false gesetzt ist. Wenn Sie dieses Beispiel verwenden, versuchen Sie, den Text in diesen Feldern mit der Maus oder der Tastatur auszuwählen. package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class selectableExample extends Sprite { public function selectableExample() { var tf1:TextField = createCustomTextField(10, 10); tf1.text="This text can be selected"; tf1.selectable=true; var tf2:TextField = createCustomTextField(10, 30); tf2.text="This text cannot be selected"; tf2.selectable=false; } private function createCustomTextField(x:Number, y:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.autoSize=TextFieldAutoSize.LEFT; addChild(result); return result; } } }
setSelection()selectionBeginIndexselectionEndIndexsetSelection()caretIndex
selectionBeginIndex Der auf null basierende Zeichenindexwert des ersten Zeichens in der aktuellen Auswahl.intDer auf null basierende Indexwert des ersten Zeichens in der Auswahl. Der auf null basierende Indexwert des ersten Zeichens in der aktuellen Auswahl. Das erste Zeichen ist beispielsweise 0, das zweite Zeichen 1 usw. Wenn kein Text ausgewählt ist, hat diese Eigenschaft den Wert caretIndex. In diesem Beispiel wird eine TextField-Instanz erstellt und mit Text gefüllt. Es wird ein Ereignis-Listener zugewiesen, damit die printCursorPosition-Methode aufgerufen wird, sobald der Benutzer auf die TextField-Instanz klickt. In diesem Fall werden die Werte der Eigenschaften caretIndex, selectionBeginIndex und selectionEndIndex ausgegeben.

Führen Sie dieses Beispiel aus, und versuchen Sie, durch Klicken in die TextField-Instanz Text auszuwählen. Klicken Sie anschließend in das Feld, ohne Text auszuwählen. Wenn Sie in den Text klicken, ohne eine Auswahl vorzunehmen, gibt die Eigenschaft caretIndex an, wo sich die Einfügemarke befindet, und die Eigenschaften selectionBeginIndex und selectionEndIndex sind identisch mit dem Wert der Eigenschaft caretIndex.

package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_caretIndex extends Sprite { public function TextField_caretIndex() { var tf:TextField = createCustomTextField(10, 10, 100, 100); tf.wordWrap = true; tf.type = TextFieldType.INPUT; tf.text = "Click in this text field. Compare the difference between clicking without selecting versus clicking and selecting text."; tf.addEventListener(MouseEvent.CLICK, printCursorPosition); } private function printCursorPosition(event:MouseEvent):void { var tf:TextField = TextField(event.target); trace("caretIndex:", tf.caretIndex); trace("selectionBeginIndex:", tf.selectionBeginIndex); trace("selectionEndIndex:", tf.selectionEndIndex); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
selectableselectionEndIndexsetSelection()caretIndex
selectionEndIndex Der auf null basierende Indexwert des letzten Zeichens in der aktuellen Auswahl.intDer auf null basierende Indexwert des letzten Zeichens in der Auswahl. Der auf null basierende Indexwert des letzten Zeichens in der aktuellen Auswahl. Das erste Zeichen ist beispielsweise 0, das zweite Zeichen 1 usw. Wenn kein Text ausgewählt ist, hat diese Eigenschaft den Wert caretIndex. In diesem Beispiel wird eine TextField-Instanz erstellt und mit Text gefüllt. Es wird ein Ereignis-Listener zugewiesen, damit die printCursorPosition-Methode aufgerufen wird, sobald der Benutzer auf die TextField-Instanz klickt. In diesem Fall werden die Werte der Eigenschaften caretIndex, selectionBeginIndex und selectionEndIndex ausgegeben.

Führen Sie dieses Beispiel aus, und versuchen Sie, durch Klicken in die TextField-Instanz Text auszuwählen. Klicken Sie anschließend in das Feld, ohne Text auszuwählen. Wenn Sie in den Text klicken, ohne eine Auswahl vorzunehmen, gibt die Eigenschaft caretIndex an, wo sich die Einfügemarke befindet, und die Eigenschaften selectionBeginIndex und selectionEndIndex sind identisch mit dem Wert der Eigenschaft caretIndex.

package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_caretIndex extends Sprite { public function TextField_caretIndex() { var tf:TextField = createCustomTextField(10, 10, 100, 100); tf.wordWrap = true; tf.type = TextFieldType.INPUT; tf.text = "Click in this text field. Compare the difference between clicking without selecting versus clicking and selecting text."; tf.addEventListener(MouseEvent.CLICK, printCursorPosition); } private function printCursorPosition(event:MouseEvent):void { var tf:TextField = TextField(event.target); trace("caretIndex:", tf.caretIndex); trace("selectionBeginIndex:", tf.selectionBeginIndex); trace("selectionEndIndex:", tf.selectionEndIndex); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
selectableselectionBeginIndexsetSelection()caretIndex
sharpness Die Schärfe der Glyphenkanten in diesem Textfeld.Number0 Die Schärfe der Glyphenkanten. Die Schärfe der Glyphenkanten in diesem Textfeld. Diese Eigenschaft gilt nur dann, wenn die Eigenschaft flash.text.AntiAliasType des Textfelds auf flash.text.AntiAliasType.ADVANCED gesetzt ist. Der Wert für sharpness kann aus dem Bereich von -400 bis 400 gewählt werden. Wenn Sie versuchen, sharpness auf einen Wert außerhalb dieses Bereichs zu setzen, setzt Flash die Eigenschaft auf den nächstgelegenen Wert im Bereich (-400 oder 400). Das folgende Beispiel zeigt, was passiert, wenn die sharpness-Eigenschaft für ein TextField-Objekt geändert wird. Sie müssen die Schriftart einbetten und die antiAliasType-Eigenschaft auf ADVANCED setzen. package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.GridFitType; import flash.text.TextFormat; public class sharpnessExample extends Sprite { public function sharpnessExample() { var format1:TextFormat = new TextFormat(); format1.font="Arial"; format1.size=24; var lTxt:String = "The quick brown fox"; var tf1:TextField=createCustomTextField(0,lTxt,format1,-400); var tf2:TextField=createCustomTextField(30,lTxt,format1,0); var tf3:TextField=createCustomTextField(60,lTxt,format1,400); } private function createCustomTextField(y:Number,fldTxt:String,format:TextFormat,fldSharpness:Number):TextField { var result:TextField = new TextField(); result.y=y; result.text=fldTxt; result.embedFonts=true; result.autoSize=TextFieldAutoSize.LEFT; result.antiAliasType=AntiAliasType.ADVANCED; result.gridFitType=GridFitType.PIXEL; result.sharpness=fldSharpness; result..setTextFormat(format); addChild(result); return result; } } } flash.text.TextField.antiAliasTypeflash.text.AntiAliasTypestyleSheet Fügt ein Stylesheet an das Textfeld an.flash.text:StyleSheetFügt ein Stylesheet an das Textfeld an. Fügt ein Stylesheet an das Textfeld an. Informationen zum Erstellen von Stylesheets finden Sie im Eintrag zur StyleSheet-Klasse und im ActionScript 3.0 Entwicklerhandbuch.

Sie können das mit einem Textfeld verknüpfte Stylesheet jederzeit ändern. Bei Änderung des verwendeten Stylesheets wird das Textfeld mit dem neuen Stylesheet neu gezeichnet. Wenn Sie das Stylesheet entfernen möchten, setzen Sie es auf null oder undefined. Wenn Sie das verwendete Stylesheet entfernen, wird das Textfeld ohne Stylesheet neu gezeichnet.

Hinweis: Wenn das Stylesheet entfernt wird, wird der Inhalt von TextField.text und TextField.htmlText in der vorher vom Stylesheet angewendeten Formatierung angezeigt. Um den ursprünglichen Inhalt von TextField.htmlText ohne Formatierung zu bewahren, speichern Sie den Wert in einer Variablen, bevor Sie das Stylesheet entfernen.

Im folgenden Beispiel wird ein einfaches StyleSheet-Objekt definiert und mit einem Textfeld mit HTML-Inhalt verknüpft. Legen Sie die stylesheet-Eigenschaft fest, bevor Sie den Inhalt festlegen. package { import flash.display.Sprite; import flash.text.TextField; import flash.text.StyleSheet; public class TextStylesheetExample extends Sprite { var myLabel:TextField = new TextField(); var labelText:String = "Hello world."; var newStyle:StyleSheet = new StyleSheet(); public function TextStylesheetExample() { var styleObj:Object = new Object(); styleObj.fontWeight = "bold"; styleObj.color = "#660066"; newStyle.setStyle(".defStyle", styleObj); myLabel.styleSheet=newStyle; myLabel.htmlText=labelText; addChild(myLabel); } } }
flash.text.StyleSheet
textColor Die Farbe des Textes in einem Textfeld (im Hexadezimalformat).uint0 (0x000000) Die Farbe des Textes in einem Textfeld (im Hexadezimalformat). Die Farbe des Textes in einem Textfeld (im Hexadezimalformat). Das Hexadezimalfarbsystem stellt Farbwerte anhand von sechs Ziffern dar. Jede Ziffer hat 16 mögliche Werte oder Zeichen. Die Zeichen reichen von 0-9 und dann A-F. Schwarz ist beispielsweise 0x000000; weiß ist 0xFFFFFF. Mit dem folgenden ActionScript wird ein TextField-Objekt erstellt und die Eigenschaft textColor in Rot (0xFF0000) geändert. package { import flash.display.Sprite; import flash.text.TextField; public class TextField_textColor extends Sprite { public function TextField_textColor() { var tf:TextField = createCustomTextField(10, 10, 100, 300); tf.text = "This will be red text"; tf.textColor = 0xFF0000; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } } textHeight Die Höhe des Texts in Pixel.NumberDie Höhe des Texts in Pixel. Die Höhe des Texts in Pixel. Im folgenden Beispiel wird ein TextField-Objekt erstellt. Anschließend wird dem Objekt Text zugewiesen. Mit den trace-Anweisungen werden die Werte der Eigenschaften textWidth und textHeight aufgerufen. Zum Vergleich werden auch die Eigenschaften width und height angezeigt. (Beachten Sie, dass die Werte für textHeight und textWidth von der auf Ihrem Computer verwendeten Schriftart abhängen). package { import flash.display.Sprite; import flash.text.TextField; public class TextField_textHeight extends Sprite { public function TextField_textHeight() { var tf:TextField = createCustomTextField(10, 10, 100, 150); tf.text = "Sample text"; trace("textWidth: " + tf.textWidth); // textWidth: 55.75 trace("textHeight: " + tf.textHeight); // textHeight: 13.450000000000001 trace("width: " + tf.width); // width: 100 trace("height: " + tf.height); // height: 150 } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.border = true; result.background = true; addChild(result); return result; } } } flash.text.TextField.textWidthtextInteractionMode Die Interaktionsmodus-Eigenschaft; der Standardwert ist TextInteractionMode.NORMAL.String Die Interaktionsmodus-Eigenschaft; der Standardwert ist TextInteractionMode.NORMAL. Auf mobilen Plattformen bedeutet der normale Modus, dass ein Bildlauf ausgeführt, der Text jedoch nicht ausgewählt werden kann. Über das integrierte Kontextmenü des Textfeldes ist es jedoch möglich, in den Auswahlmodus zu wechseln. Auf dem Desktop bedeutet der normale Modus, dass ein Bildlauf ausgeführt und der Text ausgewählt werden kann. textWidth Die Breite des Texts in Pixel.NumberDie Breite des Texts in Pixel. Die Breite des Texts in Pixel. Im folgenden Beispiel wird ein TextField-Objekt erstellt. Anschließend wird dem Objekt Text zugewiesen. Mit den trace-Anweisungen werden die Werte der Eigenschaften textWidth und textHeight aufgerufen. Zum Vergleich werden auch die Eigenschaften width und height angezeigt. (Beachten Sie, dass die Werte für textHeight und textWidth von der auf Ihrem Computer verwendeten Schriftart abhängen). package { import flash.display.Sprite; import flash.text.TextField; public class TextField_textHeight extends Sprite { public function TextField_textHeight() { var tf:TextField = createCustomTextField(10, 10, 100, 150); tf.text = "Sample text"; trace("textWidth: " + tf.textWidth); // textWidth: 55.75 trace("textHeight: " + tf.textHeight); // textHeight: 13.450000000000001 trace("width: " + tf.width); // width: 100 trace("height: " + tf.height); // height: 150 } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.border = true; result.background = true; addChild(result); return result; } } } flash.text.TextField.textHeighttext Ein String, bei dem es sich um den aktuellen Text im Textfeld handelt.StringEin String, bei dem es sich um den aktuellen Text im Textfeld handelt. Ein String, bei dem es sich um den aktuellen Text im Textfeld handelt. Zeilen sind durch das Wagenrücklaufzeichen ('\r' , ASCII 13) getrennt. Diese Eigenschaft enthält unformatierten Text im Textfeld (ohne HTML-Tags).

Verwenden Sie die Eigenschaft htmlText, um den Text in das HTML-Format zu konvertieren.

Im folgenden Beispiel wird ein TextField-Objekt mit der Bezeichnung tf1 erstellt, und der Eigenschaft text wird ein String im HTML-Format zugewiesen. Wenn die Eigenschaft htmlText nachverfolgt wird, wird der String im HTML-Format mit zusätzlichen Tags (z. B. <P> und <FONT>) automatisch von Flash Player hinzugefügt. Wenn der Wert der Eigenschaft text nachverfolgt wird, wird der unformatierte String ohne HTML-Tags angezeigt.

Zum Vergleich werden die gleichen Schritte mit einem weiteren TextField-Objekt mit der Bezeichnung tf2. Zusätzlich wird der Eigenschaft styleSheet von tf2 ein StyleSheet-Objekt zugewiesen, bevor die Eigenschaft htmlText festgelegt wird. In diesem Fall enthält die Eigenschaft htmlText, wenn sie nachverfolgt wird, nur den genauen HTML-Text, der ursprünglich der Eigenschaft htmlText zugewiesen war. Es wurden keine zusätzlichen Tags von Flash Player eingefügt.

package { import flash.display.Sprite; import flash.text.StyleSheet; import flash.text.TextField; public class TextField_text extends Sprite { public function TextField_text() { var tf1:TextField = createCustomTextField(10, 10, 400, 22); tf1.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">&lt;b&gt;Lorem ipsum dolor sit amet.&lt;/b&gt;</FONT></P> trace("htmlText: " + tf1.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf1.text); var tf2:TextField = createCustomTextField(10, 50, 400, 22); tf2.styleSheet = new StyleSheet(); tf2.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <b>Lorem ipsum dolor sit amet.</b> trace("htmlText: " + tf2.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf2.text); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
flash.text.TextField.htmlText
thickness Die Stärke der Glyphenkanten in diesem Textfeld.Number0 Die Stärke der Glyphenkanten. Die Stärke der Glyphenkanten in diesem Textfeld. Diese Eigenschaft gilt nur dann, wenn flash.text.AntiAliasType auf flash.text.AntiAliasType.ADVANCED gesetzt ist.

Der Wert für thickness kann aus dem Bereich von -200 bis 200 gewählt werden. Wenn Sie versuchen, thickness auf einen Wert außerhalb dieses Bereichs zu setzen, wird die Eigenschaft auf den nächstgelegenen Wert im Bereich gesetzt (-200 oder 200).

Das folgende Beispiel zeigt, was passiert, wenn die thickness-Eigenschaft für ein TextField-Objekt geändert wird. Sie müssen die Schriftart einbetten und die antiAliasType-Eigenschaft auf ADVANCED setzen. package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.GridFitType; import flash.text.TextFormat; public class thicknessExample extends Sprite { public function thicknessExample() { var format1:TextFormat = new TextFormat(); format1.font="Arial"; format1.size=24; var lTxt:String = "The quick brown fox"; var tf1:TextField=createCustomTextField(0,lTxt,format1,-200); var tf2:TextField=createCustomTextField(30,lTxt,format1,0); var tf3:TextField=createCustomTextField(60,lTxt,format1,200); } private function createCustomTextField(y:Number,fldTxt:String,format:TextFormat,fldThickness:Number):TextField { var result:TextField = new TextField(); result.y=y; result.text=fldTxt; result.embedFonts=true; result.autoSize=TextFieldAutoSize.LEFT; result.antiAliasType=AntiAliasType.ADVANCED; result.gridFitType=GridFitType.PIXEL; result.thickness=fldThickness; result.setTextFormat(format); addChild(result); return result; } } }
flash.text.TextField.antiAliasTypeflash.text.AntiAliasType
type Der Typ des Textfelds.StringDer angegebene type-Wert gehört nicht zu „flash.text.TextFieldType“. ArgumentErrorArgumentErrordynamic Der Typ des Textfelds. Der Typ des Textfelds. Eine der folgenden TextFieldType-Konstanten: TextFieldType.DYNAMIC zur Angabe eines dynamischen Textfelds, das nicht von den Benutzern bearbeitet werden kann, oder TextFieldType.INPUT zur Angabe eines Eingabefelds, das von den Benutzern bearbeitet werden kann. Im folgenden Beispiel werden zwei Textfelder erstellt: tfDynamic und tfInput. In beide Felder wird Text eingegeben. Für tfDynamic wird die type-Eigenschaft jedoch auf TextFieldType.DYNAMIC gesetzt wohingegen die type-Eigenschaft von tfInput auf TextFieldType.INPUT gesetzt wird. Daher kann der Benutzer den Text bei tfInput bearbeiten, während er bei tfDynamic keine Änderungen am Text vornehmen kann. package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_type extends Sprite { public function TextField_type() { var tfDynamic:TextField = createCustomTextField(10, 10, 100, 20); tfDynamic.type = TextFieldType.DYNAMIC; tfDynamic.text = "hello"; var tfInput:TextField = createCustomTextField(10, 45, 100, 20); tfInput.type = TextFieldType.INPUT; tfInput.text = "world"; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.background = true; result.border = true; addChild(result); return result; } } } flash.text.TextFieldTypeuseRichTextClipboard Gibt an, ob beim Kopieren und Einfügen auch die Textformatierung übernommen wird.Boolean Gibt an, ob beim Kopieren und Einfügen auch die Textformatierung übernommen wird. Wenn dieses Objekt auf true gesetzt ist, kopiert Flash Player Formatierungen (wie z. B. Ausrichtung, fett und kursiv) und fügt diese ein, wenn Sie zwischen Textfeldern kopieren und einfügen. Sowohl im Ausgangs- als auch im Zieltextfeld des Kopier- und Einfügevorgangs muss useRichTextClipboard auf true gesetzt sein. Der Standardwert ist false. Dieses Beispiel erstellt ein Eingabetextfeld (tf1) und zwei dynamische Textfelder (tf2 und tf3). Der Code verknüpft jedes dynamische Feld mit einem TextFormat-Objekt (Courier Bold-Schrift). Für das Textfeld tf2 ist die Eigenschaft useRichTextClipboard auf false gesetzt. Für das Textfeld tf3 ist die Eigenschaft useRichTextClipboard auf true gesetzt. Wenn Sie den Text im Textfeld tf2 kopieren und ihn in das Textfeld tf1 einfügen, enthält der eingefügte Text keine Formatierung. Wenn Sie den Text im Textfeld tf3 (für das useRichTextClipboard auf true gesetzt ist) kopieren und ihn in das Textfeld tf1 einfügen, enthält der eingefügte Text die Formatierung. package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFormat; public class useRichTextClipboard extends Sprite { public function useRichTextClipboard() { var format1:TextFormat = new TextFormat(); format1.font="Courier"; format1.bold=true; var tf1:TextField = createCustomTextField(10, 10, 200, 20); tf1.type=TextFieldType.INPUT; tf1.useRichTextClipboard=true; var tf2:TextField = createCustomTextField(220, 10, 200, 20); tf2.text="1.Text loses format"; tf2.setTextFormat(format1); tf2.useRichTextClipboard=false; var tf3:TextField = createCustomTextField(220, 50, 200, 20); tf3.text="2.Text includes format"; tf3.setTextFormat(format1); tf3.useRichTextClipboard=true; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.background = true; result.border = true; addChild(result); return result; } } } wordWrap Ein boolescher Wert, der angibt, ob im Textfeld ein Zeilenumbruch durchgeführt wird.BooleanGibt an, ob der Text im Textfeld umbrochen wird. Ein boolescher Wert, der angibt, ob im Textfeld ein Zeilenumbruch durchgeführt wird. Wenn die Eigenschaft wordWrap auf true gesetzt ist, findet im Textfeld ein Zeilenumbruch statt. Wenn der Wert false ist, findet im Textfeld kein Zeilenumbruch statt. Der Standardwert ist false. Aus dem folgenden Beispiel geht der Unterschied zwischen der Einstellung true und false für wordWrap hervor: Es werden zwei TextField-Instanzen erstellt, deren Inhalt zu groß für die Breite der Textfelder ist. Die Eigenschaft wordWrap der ersten Instanz (tfWrap) wird auf true gesetzt, die der zweiten Instanz (tfNoWrap) auf false. package { import flash.display.Sprite; import flash.text.TextField; public class TextField_wordWrap extends Sprite { public function TextField_wordWrap() { var tfWrap:TextField = createCustomTextField(10, 10, 100, 100); tfWrap.wordWrap = true; tfWrap.text = "(wordWrap = true):\nThis is very long text that will certainly extend beyond the width of this text field"; var tfNoWrap:TextField = createCustomTextField(10, 150, 100, 100); tfNoWrap.wordWrap = false; tfNoWrap.text = "(wordWrap = false):\nThis is very long text that will certainly extend beyond the width of this text field"; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.background = true; result.border = true; addChild(result); return result; } } }
TextFormat Die TextFormat-Klasse enthält Zeichenformatierungsinformationen.Erstellt Textformatierungen in Textfeldern. Object Die TextFormat-Klasse enthält Zeichenformatierungsinformationen. Verwenden Sie diese Klasse zum Erstellen spezieller Textformatierungen für Textfelder. Textformatierungen können sowohl auf statische als auch auf dynamische Textfelder angewendet werden. Die Eigenschaften der TextFormat-Klasse gelten für Geräte- und eingebettete Schriftarten. Bei eingebetteten Schriftarten sind jedoch für Fett- und Kursivformatierungen spezielle Schriftarten erforderlich. Wenn Sie bei Verwendung einer eingebetteten Schriftart fett bzw. kursiv formatierten Text einsetzen möchten, müssen Sie die Fett- und Kursivvarianten dieser Schriftart einbetten.

Bevor Sie die Eigenschaften eines TextFormat-Objekts einstellen können, müssen Sie das Objekt mithilfe des Konstruktors new TextFormat() erstellen. Wenn Sie ein TextFormat-Objekt über die TextField.defaultTextFormat-Eigenschaft oder die TextField.setTextFormat()-Methode auf ein Textfeld anwenden, werden nur die definierten Eigenschaften angewendet. Verwenden Sie die TextField.defaultTextFormat-Eigenschaft, um Formatierung anzuwenden, BEVOR Sie dem TextField Text hinzufügen, und die setTextFormat()-Methode, um Formatierung hinzuzufügen, NACHDEM Sie dem TextField Text hinzufügen. Die TextFormat-Eigenschaften lauten standardmäßig null, da die Flash Player-eigene Standardformatierung verwendet wird, wenn Sie keine Werte für die Eigenschaften angeben. Die von Flash Player verwendete Standardformatierung sieht wie folgt aus (falls der Wert der Eigenschaft null beträgt):

align = "left"blockIndent = 0bold = falsebullet = falsecolor = 0x000000font = "Times New Roman" („Times“ bei Mac OS X)indent = 0italic = falsekerning = falseleading = 0leftMargin = 0letterSpacing = 0rightMargin = 0size = 12tabStops = [] (leeres Array)target = "" (leerer String)underline = falseurl = "" (leerer String)

Die Standardformatierung für die einzelnen Eigenschaften befindet sich auch in den einzelnen Eigenschaftsbeschreibungen.

Im folgenden Beispiel wird die TextFieldExample-Klasse verwendet, um eine Textmeldung an der Standardposition (x = 0, y = 0) anzuzeigen. Dies wird in den folgenden Schritten erreicht:
  1. Es wird eine label-Eigenschaft vom Typ „TextField“ erstellt.
  2. Der Klassenkonstruktor ruft die Funktion configureLabel() auf.
  3. Mit der Funktion configureLabel() wird zuerst ein neues TextField-Objekt erstellt, das anschließend der Eigenschaft label zugewiesen wird. Danach werden die Parameter wie folgt eingestellt:
    • Textfeld links ausrichten
    • Hintergrundfüllung aktivieren
    • Rahmen aktivieren.
  4. Anschließend erstellt configureLabel() die lokale Variable, format und weist sie einer neuer TextFormat-Instanz mit Parametern zu, die wie folgt definiert sind:
    • Schriftart = Verdana
    • Schriftfarbe = reines Rot
    • Schriftgröße = 10
    • Unterstreichung = true.
  5. Die Eigenschaft defaultTextFormat von „label“ ist auf format gesetzt, und die label-Instanz wird der Anzeigeliste hinzugefügt. In dieser wird zuerst ein Textfeld ohne Text (als kleines Feld mit weißem Hintergrund) angezeigt.
  6. Zum Schluss (im Konstruktor) wird durch den Aufruf von setLabel() der label-Text auf „Hello World and welcome to the show“ gesetzt, und als Koordinaten werden x = 0 und y = 0 festgelegt.
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class TextFormatExample extends Sprite { private var label:TextField; public function TextFormatExample() { configureLabel(); setLabel("Hello World and welcome to the show"); } public function setLabel(str:String):void { label.text = str; } private function configureLabel():void { label = new TextField(); label.autoSize = TextFieldAutoSize.LEFT; label.background = true; label.border = true; var format:TextFormat = new TextFormat(); format.font = "Verdana"; format.color = 0xFF0000; format.size = 10; format.underline = true; label.defaultTextFormat = format; addChild(label); } } }
flash.text.TextField.setTextFormat()flash.text.TextField.defaultTextFormatflash.text.TextField.getTextFormat()TextFormat Erstellt ein TextFormat-Objekt mit den angegebenen Eigenschaften.fontStringnullDer Name der Schriftart für Text als String. sizeObjectnullEine ganze Zahl, die die Größe in Pixeln angibt. colorObjectnullDie Farbe des Textes mit diesem Textformat. Eine Zahl mit drei 8-Bit-RGB-Komponenten. 0xFF0000 ist beispielsweise Rot und 0x00FF00 Grün. boldObjectnullEin boolescher Wert, der angibt, ob der Text fett formatiert wird. italicObjectnullEin boolescher Wert, der angibt, ob der Text kursiv formatiert wird. underlineObjectnullEin boolescher Wert, der angibt, ob der Text unterstrichen formatiert wird. urlStringnullDie URL, auf die der Text in diesem Textformat mit einem Hyperlink verweist. Wenn für url ein leerer String angegeben wird, weist der Text keinen Hyperlink auf. targetStringnullDas Zielfenster im Browser, in dem der Hyperlink angezeigt werden soll. Wenn als Zielfenster ein leerer String angegeben wird, erscheint der Text im Standardzielfenster (_self). Wenn der Parameter url auf einen leeren String oder den Wert null gesetzt ist, kann diese Eigenschaft zwar abgerufen und eingestellt werden, hat aber keine Auswirkung. alignStringnullDie Absatzausrichtung dargestellt als TextFormatAlign-Wert. leftMarginObjectnullGibt den linken Rand des Absatzes in Pixeln an. rightMarginObjectnullGibt den rechten Rand des Absatzes in Pixeln an. indentObjectnullEine Ganzzahl, die den Einzug vom linken Rand bis zum ersten Zeichen im Absatz angibt. leadingObjectnullEine Zahl, die den Zeilenabstand angibt. Erstellt ein TextFormat-Objekt mit den angegebenen Eigenschaften. Später können Sie die Eigenschaften des TextFormat-Objekts ändern, um die Formatierung von Textfeldern zu modifizieren.

Jeder Parameter kann auf den Wert null gesetzt werden, wenn er nicht definiert werden soll. Alle Parameter sind optional. Ein weggelassener Parameter wird wie ein Parameter mit dem Wert null behandelt.

Im folgenden Beispiel kann ein Benutzer verschiedene Textformatierungsoptionen aus einer Liste auswählen, die auf den Inhalt eines anderen Textfelds angewendet werden. Wenn der Benutzer auf den Inhalt des Textfelds klickt, wird wieder das Standardformat (das ursprüngliche Format) verwendet.

Im Textfeld formatTextField sind alle Eigenschaftenoptionen der TextField-Klasse (mit Ausnahme von kerning) jeweils in einer separaten Zeile aufgeführt. Wenn ein Benutzer auf eine Zeile im Textfeld formatTextField klickt, wird die formatTextFieldClickHandler()-Methode ausgelöst.

Die formatTextFieldClickHandler()-Methode ruft die TextField.getLineIndexAtPoint()-Methode auf, um den Index der Zeile, auf die geklickt wurde, abzurufen, und ruft dann die TextField.getLineText()-Methode auf, um den Inhalt der Zeile abzurufen. Die switch-Anweisung überprüft den Inhalt der Zeile und legt eine Eigenschaft des TextFormat-Objekts newformat entsprechend fest. Die setTextFormat()-Methode legt dann das Textformat des Textfelds contentTextField auf das neue Format fest. Durch das Klicken auf verschiedene formatTextField-Zeilen kann ein Benutzer verschiedene Formatierungen auf das Textfeld contentTextField anwenden. (Bei der tab-Einstellung handelt es sich um ein Array, das separate Tab-Stopps für jeden Tabulator in der Zeile definiert.) Wenn die Zeile url oder target ausgewählt wird, muss der Benutzer auf das Textfeld contentTextField klicken, um den Link zu aktivieren und den Inhalt der Ziel-URL (Flex-Homepage) anzuzeigen). Der Standardwert der target-Eigenschaft ist „_self“, was bedeutet, dass der Inhalt im aktuellen Fenster angezeigt wird, wenn der Benutzer die Zeile url auswählt. Damit die target-Eigenschaft funktioniert, muss eine URL bereits in der url-Eigenschaft festgelegt werden.

Wenn ein Benutzer auf das Textfeld contentTextField klickt, wird die contentTextFieldClickHandler()-Methode ausgelöst, die sowohl das Format des Feldes als auch das newFormat des TextFormat-Objekts auf das Standardtextformat (das ursprüngliche Format) des Textfeldes festlegt. Damit werden alle vom Benutzer vorgenommenen Formatänderungen gelöscht.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.text.TextFormatAlign; public class TextFormat_constructorExample extends Sprite { private var contentTextField:TextField = new TextField(); private var formatTextField:TextField = new TextField(); private var newFormat:TextFormat = new TextFormat(); public function TextFormat_constructorExample() { contentTextField.x = 10; contentTextField.y = 10; contentTextField.background = true; contentTextField.border = true; contentTextField.multiline = true; contentTextField.wordWrap = true; contentTextField.selectable = false; contentTextField.width = 250; contentTextField.height = 120; contentTextField.htmlText = "<p>The TextFormat class represents character formatting " + "information. Use the TextFormat class to create specific text formatting " + "for text fields." + " </p><br>" + "\tTab One" + "\tTab Two<br>"; formatTextField.x = 10; formatTextField.y = 140; formatTextField.background = true; formatTextField.border = true; formatTextField.autoSize = TextFieldAutoSize.LEFT; formatTextField.text = "align: right\n" + "blockIndent: 10 pixels\n" + "bold:\n" + "bullet:\n" + "color: red\n" + "font: Arial\n" + "indent: 20 pixels\n" + "italic:\n" + "leading: 5 spaces\n" + "leftMargin: 20 pixels\n" + "letterSpacing: 4 pixels\n" + "rightMargin: 20 pixels\n" + "size: 16 point\n" + "target: new window\n" + "tabStops: 50 and 150 pixel\n" + "underline:\n" + "url: Adobe Flex page\n"; formatTextField.addEventListener(MouseEvent.CLICK, formatTextFieldClickHandler); contentTextField.addEventListener(MouseEvent.CLICK, contentTextFieldClickHandler); this.addChild(contentTextField); this.addChild(formatTextField); } private function formatTextFieldClickHandler(e:MouseEvent):void { var value:String= ""; var i:uint = 0; var index:int = formatTextField.getLineIndexAtPoint(e.localX, e.localY); var line:String = formatTextField.getLineText(index);; line = line.substr(0, (line.indexOf(":"))); switch(line) { case "align": newFormat.align = TextFormatAlign.RIGHT; break; case "blockIndent": newFormat.blockIndent = 10; break; case "bold": newFormat.bold = true; break; case "bullet": newFormat.bullet = true; break; case "color": newFormat.color = 0xFF0000; break; case "font": newFormat.font = "Arial"; break; case "indent": newFormat.indent = 20; break; case "italic": newFormat.italic = true; break; case "leading": newFormat.leading = 5; break; case "leftMargin": newFormat.leftMargin = 20; break; case "letterSpacing": newFormat.letterSpacing = 4; break; case "rightMargin": newFormat.rightMargin = 20; break; case "size": newFormat.size = 16; break; case "tabStops": newFormat.tabStops = [50, 150]; break; case "target": newFormat.url = "http://www.adobe.com/products/flex/"; newFormat.target = "_blank"; break; case "underline": newFormat.underline = true; break; case "url": newFormat.url = "http://www.adobe.com/products/flex/"; break; } contentTextField.setTextFormat(newFormat); } private function contentTextFieldClickHandler(e:MouseEvent):void { contentTextField.setTextFormat(contentTextField.defaultTextFormat); newFormat = contentTextField.defaultTextFormat; } } }
align Gibt die Ausrichtung des Absatzes an.StringDer angegebene align-Wert gehört nicht zu „flash.text.TextFormatAlign“. ArgumentErrorArgumentErrorTextFormatAlign.LEFT Gibt die Ausrichtung des Absatzes an. Gültige Werte sind TextFormatAlign-Konstanten. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. flash.text.TextFormatAlignblockIndent Gibt den Blockeinzug in Pixeln an.Object Gibt den Blockeinzug in Pixeln an. Der Blockeinzug gilt für den gesamten Textblock, d. h. für alle Textzeilen. Im Gegensatz dazu wirkt sich der normale Einzug (TextFormat.indent) nur auf die erste Zeile in einem Absatz aus. Wenn diese Eigenschaft auf null gesetzt ist, wird in diesem TextFormat-Objekt kein Blockeinzug angegeben (Blockeinzug = 0). Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. bold Gibt an, ob der Text fett formatiert wird.Object Gibt an, ob der Text fett formatiert wird. Der Standardwert null bedeutet, dass keine Fettformatierung erfolgt. Wenn der Wert true ist, ist der Text fett formatiert. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. bullet Gibt an, dass der Text Bestandteil einer Aufzählung ist.Object Gibt an, dass der Text Bestandteil einer Aufzählung ist. In einer Aufzählung ist jeder Textabsatz eingerückt. Vor der ersten Zeile in einem Absatz wird ein Aufzählungszeichen angezeigt. Der Standardwert null bedeutet, dass keine Aufzählung verwendet wird. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. color Gibt die Textfarbe an.Object Gibt die Textfarbe an. Eine Zahl mit drei 8-Bit-RGB-Komponenten. 0xFF0000 ist beispielsweise Rot und 0x00FF00 Grün. Der Standardwert null bedeutet, dass in Flash Player die Farbe Schwarz (0x000000) verwendet wird. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. font Ein String mit dem Namen der Schriftart für Text in diesem Textformat.String Ein String mit dem Namen der Schriftart für Text in diesem Textformat. Der Standardwert null bedeutet, dass in Flash Player Times New Roman für den Text verwendet wird. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. indent Gibt den Einzug vom linken Rand bis zum ersten Zeichen im Absatz an.Object Gibt den Einzug vom linken Rand bis zum ersten Zeichen im Absatz an. Der Standardwert ist null, d. h., es erfolgt kein Einzug. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. flash.text.TextFormat.blockIndentitalic Gibt an, ob Text in diesem Textformat kursiv formatiert wird.Object Gibt an, ob Text in diesem Textformat kursiv formatiert wird. Der Standardwert null bedeutet, dass keine Kursivformatierung erfolgt. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. kerning Ein boolescher Wert, der angibt, ob Kerning aktiviert (true) oder deaktiviert (false) ist.Object Ein boolescher Wert, der angibt, ob Kerning aktiviert (true) oder deaktiviert (false) ist. Der Begriff „Kerning“ bezeichnet die Anpassung der Pixel zwischen bestimmten Zeichenpaaren zur Verbesserung der Lesbarkeit. Diese Funktion sollte nur verwendet werden, wenn sie unbedingt erforderlich ist, beispielsweise bei Überschriften in großen Schriftarten. Kerning wird nur für eingebettete Schriftarten unterstützt.

Bestimmte Schriftarten wie Verdana und Schriftarten mit fester Breite wie Courier New unterstützen Kerning nicht.

Der Standardwert null bedeutet, dass Kerning deaktiviert ist.

leading Eine Ganzzahl, die den Abstand zwischen den Zeilen (leading) angibt.Object Eine Ganzzahl, die den Abstand zwischen den Zeilen (leading) angibt. Der Standardwert ist null, d. h., es wird kein Zeilenabstand verwendet. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. leftMargin Der linke Rand des Absatzes in Pixel.Object Der linke Rand des Absatzes in Pixel. Der Standardwert ist null, d. h., der linke Rand ist 0 Pixel breit. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. letterSpacing Eine Zahl für den insgesamt verfügbaren Platz, der gleichmäßig zwischen den Zeichen aufgeteilt wird.Object Eine Zahl für den insgesamt verfügbaren Platz, der gleichmäßig zwischen den Zeichen aufgeteilt wird. Der Wert gibt an, wie viele Pixel Leerraum hinter jedem Zeichen einzufügen sind. Der Standardwert null bedeutet, dass ein Zeichenabstand von 0 Pixel verwendet wird. Sie können Dezimalwerte verwenden, zum Beispiel 1.75. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. rightMargin Der rechte Rand des Absatzes in Pixel.Object Der rechte Rand des Absatzes in Pixel. Der Standardwert ist null, d. h., der rechte Rand ist 0 Pixel breit. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. size Die Größe des Texts in diesem Textformat in Pixeln.Object Die Größe des Texts in diesem Textformat in Pixeln. Der Standardwert ist null, was bedeutet, das als Größe 12 verwendet wird. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. tabStops Gibt benutzerdefinierte Tabstopps als Array aus nicht negativen Ganzzahlen an.Array Gibt benutzerdefinierte Tabstopps als Array aus nicht negativen Ganzzahlen an. Jeder Tabstopp wird in Pixeln angegeben. Wenn keine benutzerdefinierten Tabstopps definiert werden (null), wird als Standardtabstopp 4 verwendet (durchschnittliche Zeichenbreite). Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. target Gibt das Zielfenster an, in dem der Hyperlink angezeigt werden soll.String Gibt das Zielfenster an, in dem der Hyperlink angezeigt werden soll. Wenn als Zielfenster ein leerer String angegeben wird, erscheint der Text im Standardzielfenster (_self). Sie können einen benutzerdefinierten Namen oder einen der folgenden vier Namen auswählen: Mit der Option _self wird der aktuelle Frame im aktuellen Fenster angegeben, mit _blank ein neues Fenster, mit _parent der dem aktuellen Frame übergeordnete Frame und mit _top der Frame der obersten Stufe im aktuellen Fenster. Wenn die Eigenschaft TextFormat.url ein leerer String oder null ist, kann sie zwar abgerufen und gesetzt werden, hat aber keine Auswirkung. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. flash.text.TextFormat.urlunderline Gibt an, ob der Text mit diesem Textformat unterstrichen ist (true) oder nicht (false).Object Gibt an, ob der Text mit diesem Textformat unterstrichen ist (true) oder nicht (false). Dieser Unterstreichungseffekt ähnelt dem, der mit dem <U>-Tag erzielt wird. Hierbei handelt es sich jedoch nicht um eine echte Unterstreichung, da Unterlängen nicht korrekt übersprungen werden. Der Standardwert null bedeutet, dass keine Unterstreichung verwendet wird. Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht. url Gibt die Ziel-URL für den Text in diesem Textformat an.String Gibt die Ziel-URL für den Text in diesem Textformat an. Wenn für die Eigenschaft url ein leerer String angegeben wird, weist der Text keinen Hyperlink auf. Der Standardwert ist null, d. h., der Text weist keinen Hyperlink auf.

Hinweis: Damit der Hyperlink funktioniert, muss für den Text mit dem zugewiesenen Textformat die Eigenschaft htmlText festgelegt werden.

Die Verwendung dieser Eigenschaft wird im Beispiel für den TextFormat()-Konstruktor veranschaulicht.
flash.text.TextField.htmlText
TextDisplayMode Die TextDisplayMode-Klasse enthält Werte zur Steuerung des Anti-Aliasing des erweitertem Anti-Aliasing-Systems für Subpixel.Object Die TextDisplayMode-Klasse enthält Werte zur Steuerung des Anti-Aliasing des erweitertem Anti-Aliasing-Systems für Subpixel. flash.text.TextRenderer.displayModeCRT Zwingt Flash Player zur Verwendung des Anti-Aliasing für Graustufen.crtString Zwingt Flash Player zur Verwendung des Anti-Aliasing für Graustufen. Diese Einstellung verhindert zwar die Farbformatierung von Text, führt aber unter Umständen zu einer leicht verschwommenen Darstellung. DEFAULT Ermöglicht Flash Player die Auswahl zwischen LCD- und CRT-Modus.defaultString Ermöglicht Flash Player die Auswahl zwischen LCD- und CRT-Modus. LCD Zwingt Flash Player zur Verwendung des Anti-Aliasing für LCD-Subpixel.lcdString Zwingt Flash Player zur Verwendung des Anti-Aliasing für LCD-Subpixel. Je nach Schriftart und Hardware führt diese Einstellung zu einer deutlich höheren Auflösung des Texts bzw. der Textfarbe. AntiAliasType Die AntiAliasType-Klasse enthält Werte für Anti-Aliasing in der flash.text.TextField-Klasse.Object Die AntiAliasType-Klasse enthält Werte für Anti-Aliasing in der flash.text.TextField-Klasse. flash.text.TextFieldADVANCED Legt erweiterte Anti-Aliasing-Einstellungen fest.advancedString Legt erweiterte Anti-Aliasing-Einstellungen fest. Das erweiterte Anti-Aliasing ermöglicht es, kleine Schriftgrößen mit sehr hoher Qualität wiederzugeben. Sein Einsatz bietet sich vor allem bei Anwendungen mit sehr viel kleinem Text an. Das erweiterte Anti-Aliasing bietet sich hingegen nicht für große Schriften (über 48 Punkt) an. Diese Konstante wird für die Eigenschaft antiAliasType in der TextField-Klasse verwendet. Verwenden Sie die Syntax AntiAliasType.ADVANCED. flash.text.TextField.antiAliasTypeNORMAL Legt das Anti-Aliasing auf Einstellungen für Flash Player 7 und früher fest.Bob Pappas normalString Legt das Anti-Aliasing auf Einstellungen für Flash Player 7 und früher fest. Diese Einstellung empfiehlt sich für Anwendungen mit wenig Text. Diese Konstante wird für die Eigenschaft antiAliasType in der TextField-Klasse verwendet. Verwenden Sie die Syntax AntiAliasType.NORMAL. flash.text.TextField.antiAliasTypeFontType Die FontType-Klasse enthält die aufgezählten Konstanten „embedded“ und „device“ für die Eigenschaft „fontType“ der Font-Klasse.Object Die FontType-Klasse enthält die aufgezählten Konstanten "embedded" und "device" für die Eigenschaft fontType der Font-Klasse. flash.text.Font.fontTypeDEVICE Gibt an, dass es sich um eine Geräteschriftart handelt.deviceString Gibt an, dass es sich um eine Geräteschriftart handelt. Die SWF-Datei gibt Schriftarten mit den auf dem System installierten Schriftarten wieder.

Die Verwendung von Geräteschriftarten führt zu einer Reduzierung der Filmgröße, da die Schriftartdaten nicht in der Datei gespeichert werden. Geräteschriftarten sind häufig eine gute Wahl zur Anzeige von Text mit kleiner Schriftgröße, da das Anti-Aliasing hierbei häufig zu unscharfen Ergebnissen führt. Geräteschriftarten sind auch eine gute Wahl für große Textblöcke wie z. B. Bildlauftext.

Textfelder mit Geräteschriftarten werden unter Umständen auf verschiedenen Systemen und Plattformen unterschiedlich angezeigt, da die jeweils auf dem System installierten Schriftarten verwendet werden. Aus dem gleichen Grund findet bei Geräteschriftarten kein Anti-Aliasing statt, was bei großen Schriftgrößen zu einer gezackten Darstellung führen kann.

TextField.embedFontsflash.text.engine.FontDescription.fontLookup
EMBEDDED_CFF Gibt an, dass es sich um eine eingebettete CFF-Schriftart handelt.embeddedCFFString Gibt an, dass es sich um eine eingebettete CFF-Schriftart handelt. Schriftartkonturen und ein Teilsatz der OpenType-Tabellen werden in der veröffentlichten SWF-Datei eingebettet.

Text, der eingebettete CFF-Schriftarten verwendet, wird immer und unabhängig davon, ob die Schriftart auf dem Wiedergabesystem installiert ist, in der gewählten Schriftart angezeigt. Außerdem wird Text, der eingebettete CFF-Schriftarten verwendet, immer von Flash Player geglättet. Sie können den Wiedergabemodus und Hinweise für eine eingebettete CFF-Schriftart über die Eigenschaft flash.text.engine.FontDescription.renderingMode und flash.text.engine.FontDescription.cffHinting auswählen.

Ein Nachteil eingebetteter CFF-Schriftarten ist, dass sie die SWF-Datei vergrößern. Eingebettete CFF-Schriftarten sind jedoch normalerweise 20 bis 30 % kleiner als reguläre eingebettete Schriftarten.

Schriftarten des Typs EMBEDDED_CFF können nur von den flash.text.engine-Klassen verwendet werden. Ein TextField, für das eine derartige Schriftart definiert wird, kann nicht wiedergegeben werden.

flash.text.engine.FontDescription.fontLookup
EMBEDDED Gibt an, dass es sich um eine eingebettete Schriftart handelt.embeddedString Gibt an, dass es sich um eine eingebettete Schriftart handelt. Schriftkonturen sind in die veröffentlichte SWF-Datei eingebettet.

Textfelder mit eingebetteten Schriftarten werden immer in der gewünschten Schriftart angezeigt. Dies erfolgt unabhängig davon, ob die Schriftart auf dem Wiedergabesystem installiert ist. Textfelder mit eingebetteten Schriftarten werden außerdem immer durch Anti-Aliasing geglättet. Der Umfang des Anti-Aliasing kann mit der Eigenschaft TextField.antiAliasType festgelegt werden.

Eingebettete Schriftarten haben den Nachteil, dass sie die Größe der SWF-Datei erheblich vergrößern.

Schriftarten des Typs EMBEDDED können nur vom TextField verwendet werden. Wenn flash.text.engine-Klassen angewiesen werden, eine derartige Schriftart zu verwenden, verwenden sie stattdessen Geräteschriftarten.

TextField.embedFonts
TextFormatAlign Die TextFormatAlign-Klasse enthält Werte zur Textausrichtung in der TextFormat-Klasse.Object Die TextFormatAlign-Klasse enthält Werte zur Textausrichtung in der TextFormat-Klasse. flash.text.TextFormatCENTER Konstante; zentriert den Text im Textfeld.centerString Konstante; zentriert den Text im Textfeld. Verwenden Sie die Syntax TextFormatAlign.CENTER. flash.text.TextFormat.alignJUSTIFY Konstante; formatiert den Text im Textfeld als Blocksatz.justifyString Konstante; formatiert den Text im Textfeld als Blocksatz. Verwenden Sie die Syntax TextFormatAlign.JUSTIFY. flash.text.TextFormat.alignLEFT Konstante; richtet Text innerhalb des Textfelds linksbündig aus.leftString Konstante; richtet Text innerhalb des Textfelds linksbündig aus. Verwenden Sie die Syntax TextFormatAlign.LEFT. flash.text.TextFormat.alignRIGHT Konstante; richtet Text innerhalb des Textfelds rechtsbündig aus.rightString Konstante; richtet Text innerhalb des Textfelds rechtsbündig aus. Verwenden Sie die Syntax TextFormatAlign.RIGHT. flash.text.TextFormat.alignFont Die Font-Klasse wird zur Verwaltung von in SWF-Dateien eingebetteten Schriftarten verwendet.Object Die Font-Klasse wird zur Verwaltung von in SWF-Dateien eingebetteten Schriftarten verwendet. Eingebettete Schriftarten werden als Unterklasse der Font-Klasse dargestellt. Die Font-Klasse wird zurzeit nur dazu verwendet, Informationen zu eingebetteten Schriftarten zu ermitteln. Sie können die Schriftart nicht mithilfe dieser Klasse ändern. Sie können die Font-Klasse nicht zum Laden externer Schriftarten oder zum Erstellen einer Instanz eines Font-Objekts selbst verwenden. Verwenden Sie die Font-Klasse als abstrakte Basisklasse. enumerateFonts Gibt an, ob eine Liste der aktuell verfügbaren eingebetteten Schriftarten bereitgestellt wird.Eine Liste der verfügbaren Schriftarten in Form eines Arrays von Font-Objekten. ArrayenumerateDeviceFontsBooleanfalseGibt an, ob Sie die Liste auf die aktuell verfügbaren Schriftarten begrenzen möchten. Bei der Einstellung true wird eine Liste sämtlicher Schriftarten (Geräteschriftarten und eingebettete Schriftarten) zurückgegeben. Bei false wird nur eine Liste der eingebetteten Schriftarten zurückgegeben. Gibt an, ob eine Liste der aktuell verfügbaren eingebetteten Schriftarten bereitgestellt wird. In diesem Beispiel wird zuerst die statische Methode Font.enumerateFonts() zur Erstellung einer Liste mit allen Geräte- und eingebetteten Schriftarten aufgerufen. Anschließend wird das Array mit Font-Objekten nach der Eigenschaft fontName sortiert.

Aus dem Beispiel geht zudem hervor, wie die Font.enumerateFonts()-Methode mit dem auf „false“ eingestellten enumerateDeviceFonts-Parameter aufgerufen wird. Das resultierende Array enthält nur eingebettete Font-Objekte. (Wenn Sie diesen Code in einer Anwendung durchführen, die keine eingebetteten Schriftarten enthält, ist das Array embeddedFonts leer.)

import flash.text.Font; var allFonts:Array = Font.enumerateFonts(true); allFonts.sortOn("fontName", Array.CASEINSENSITIVE); var embeddedFonts:Array = Font.enumerateFonts(false); embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE);
hasGlyphs Gibt an, ob ein vorgegebener String mit der aktuell zugewiesenen Schriftart angezeigt werden kann.Der Wert true bedeutet, dass der vorgegebene String in der Schriftart vollständig dargestellt werden kann. BooleanstrStringDer String, dessen Darstellung in der aktuellen Schriftart getestet wird. Gibt an, ob ein vorgegebener String mit der aktuell zugewiesenen Schriftart angezeigt werden kann. registerFont Registriert eine Font-Klasse in der globalen Schriftartenliste.fontClassDie Klasse, die Sie der globalen Schriftartenliste hinzufügen möchten. Registriert eine Font-Klasse in der globalen Schriftartenliste. fontName Der Name einer eingebetteten Schriftart.String Der Name einer eingebetteten Schriftart. Das folgende Beispiel zeigt, wie Sie eine eingebettete Schriftart mit dem Flash Professional ActionScript 3.0 CheckBox-Steuerelement verwenden können, indem Sie die textFormat- und embedFonts-Stile einstellen. Beispiel bereitgestellt von ActionScriptExamples.com. // Requires: // - A CheckBox control UI component in Flash library. // - An embedded font in Flash library with linkage class "MyFont" and Export for ActionScript checked. // import fl.controls.CheckBox; var embeddedFont:Font = new MyFont(); var textFormat:TextFormat = new TextFormat(); textFormat.font = embeddedFont.fontName; textFormat.size = 24; var checkBox:CheckBox = new CheckBox(); checkBox.setStyle("textFormat", textFormat); checkBox.setStyle("embedFonts", true); checkBox.label = "The quick brown fox jumps over the lazy dog."; checkBox.textField.autoSize = TextFieldAutoSize.LEFT; checkBox.move(10, 10); checkBox.validateNow(); addChild(checkBox); fontStyle Der Stil der Schriftart.String Der Stil der Schriftart. Hierbei kann es sich um einen beliebigen Wert aus der FontStyle-Klasse handeln. flash.text.FontStylefontType Der Typ der Schriftart.String Der Typ der Schriftart. Hierbei kann es sich um eine beliebige Konstante aus der FontType-Klasse handeln. flash.text.FontType
TextRenderer Die TextRenderer-Klasse enthält Funktionen für das erweiterte Anti-Aliasing eingebetteter Schriftarten.Steuert das Anti-Aliasing von eingebetteten Schriftarten. Object Die TextRenderer-Klasse enthält Funktionen für das erweiterte Anti-Aliasing eingebetteter Schriftarten. Das erweiterte Anti-Aliasing ermöglicht es, Schriften in sehr kleinen Größen mit sehr hoher Qualität wiederzugeben. Verwenden Sie erweitertes Anti-Aliasing vor allem bei Anwendungen mit sehr viel kleinem Text an. Adobe empfiehlt erweitertes Anti-Aliasing nicht für sehr große Schriften (über 48 Punkt). Erweitertes Anti-Aliasing steht erst ab Flash Player 8 zur Verfügung.

Wenn Sie das erweiterte Anti-Aliasing für ein Textfeld verwenden möchten, setzen Sie die antiAliasType-Eigenschaft der Textfeldinstanz:

Erweitertes Anti-Aliasing bietet Continuous Stroke Modulation (CSM), d. h. die fortlaufende Modulierung von Strichstärke und Kantenschärfe. Zu den erweiterten Funktionen gehört die Möglichkeit, mit der setAdvancedAntiAliasingTable()-Methode Einstellungen für bestimmte Schriftarten und Schriftgrade zu definieren.

Im folgenden Beispiel wird eine TextRendererExample-Klasse erstellt, um visuelle Beispiele für erweiterte Anti-Aliasing-Einstellungen mit kleinen und großen Schriftgrößen zu zeigen. Vor dem Testen dieses Beispiels müssen Sie eine Schrift einbetten. Wenn Sie Flex verwenden, wird die Schriftart folgendermaßen eingebettet:
  1. Platzieren Sie die Schriftart Georgia (georgia.ttf) in dasselbe Verzeichnis wie diese AS-Datei.
  2. Fügen Sie direkt unterhalb der Klassendefinition folgende Zeilen hinzu:
  3. [Embed(source="georgia.ttf", fontFamily="Georgia")]
  4. private var embeddedFont:String;
Wenn Sie Flash verwenden, wird die Schriftart folgendermaßen eingebettet:
  1. Platzieren Sie ein Textfeld auf der Bühne und wählen Sie es aus.
  2. Setzen Sie im Eigenschaftsinspektor die Schriftart dieses Textfelds auf Georgia.
  3. Klicken Sie im Eigenschaftsinspektor auf „Embed...“ und wählen Sie „All“ aus.

Hinweise:

  • Für die Kompilierung der SWF-Datei müssen Sie die Option „Sicherheit bei lokaler Wiedergabe“ auf „Nur auf lokale Dateien zugreifen“ einstellen.

package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.events.*; import flash.text.*; public class TextRendererExample2 extends Sprite { private var gutter:int = 10; public function TextRendererExample2() { createTextField(8,AntiAliasType.NORMAL); createTextField(8,AntiAliasType.ADVANCED); createTextField(24,AntiAliasType.NORMAL); createTextField(24,AntiAliasType.ADVANCED); } private function createTextField(fontSize:Number,antiAliasType:String):TextField { var tf:TextField = new TextField(); tf.embedFonts = true; tf.autoSize = TextFieldAutoSize.LEFT; tf.antiAliasType = antiAliasType; tf.defaultTextFormat = getTextFormat(fontSize); tf.selectable = false; tf.mouseEnabled = true; tf.text = "The quick brown fox jumped over the lazy dog."; if(numChildren > 0) { var sibling:DisplayObject = getChildAt(numChildren - 1); tf.y = sibling.y + sibling.height + gutter; } addChild(tf); return tf; } private function getTextFormat(fontSize:Number):TextFormat { var format:TextFormat = new TextFormat(); format.size = fontSize; format.font = "Georgia"; return format; } } }
flash.text.TextField.antiAliasTypesetAdvancedAntiAliasingTable Legt eine benutzerdefinierte CSM-Nachschlagetabelle für eine Schriftart fest.fontNameStringDer Name der Schriftart, auf die Sie Einstellungen anwenden. fontStyleStringDer durch einen der Werte aus der flash.text.FontStyle-Klasse angegebene Schriftstil. colorTypeStringMit diesem Wert wird bestimmt, ob der Strich dunkel oder hell ist. Verwenden Sie einen der Werte aus der flash.text.TextColorType-Klasse. advancedAntiAliasingTableArrayEin Array mit einem oder mehreren CSMSettings-Objekten für die angegebene Schriftart. Jedes Objekt enthält die folgenden Eigenschaften:
  • fontSize
  • insideCutOff
  • outsideCutOff

Das Array advancedAntiAliasingTable kann mehrere Einträge für CSM-Einstellungen zu verschiedenen Schriftgrößen enthalten.

fontSize ist die Größe in Pixel, für die die Einstellungen gelten.

Beim erweiterten Anti-Aliasing werden die Konturen, die ein Zeichen bestimmen, mittels ADFs (Adaptively Sampled Distance Fields) dargestellt. In Flash Player wird ein outsideCutOff-Wert verwendet, unterhalb dessen die Dichten auf 0 gesetzt werden, und ein insideCutOff-Wert, oberhalb dessen die Dichten auf eine Höchstdichte (z. B. 255) gesetzt werden. Zwischen diesen beiden Werten verläuft die Zuordnungsfunktion linear von 0 am unteren Schwellenwert bis zur Höchstdichte am oberen Schwellenwert.

Die Anpassung der Werte für den unteren und den oberen Schwellenwert wirken sich auf die Strichbreite und die Kantenschärfe aus. Der Abstand zwischen diesen beiden Parametern ist mit dem doppelten Filterradius klassischer Anti-Aliasing-Methoden vergleichbar. Ein geringer Abstand bewirkt schärfere Kanten, ein größerer Abstand weichere, stärker gefilterte Kanten. Bei einem Abstand von null ist das Bild mit der resultierenden Dichte ein Bi-level-Bild (Bitmapbild). Bei einem sehr großen Abstand entsteht ein Bild mit wasserfarbenähnlichen Kanten.

Normalerweise werden scharfe, kontrastreiche Kanten für kleinere Punktgrößen und weichere Kanten für Lauftext und höhere Punktgrößen bevorzugt.

Der untere Schwellenwert ist normalerweise ein negativer Wert, der obere Schwellenwert ein positiver. Ihr Mittelpunkt liegt normalerweise um 0. Wenn Sie diese Parameter ändern, um den Mittelpunkt in Richtung negativer Unendlichkeit zu verschieben, erhöht sich die Strichbreite. Bei Verschiebung des Mittelpunkts zur positiven Unendlichkeit hin wird die Strichbreite verringert. Beachten Sie, dass der untere Schwellenwert nicht größer als der obere Schwellenwert sein darf.

Legt eine benutzerdefinierte CSM-Nachschlagetabelle für eine Schriftart fest. Flash Player versucht, die beste CSM für Ihre Schriftart zu ermitteln. Wenn Sie mit der von Flash Player bereitgestellten CSM nicht zufrieden sind, können Sie Ihre eigene CSM mit der Methode setAdvancedAntiAliasingTable() festlegen.
flash.text.FontStyleflash.text.TextColorTypeCSMSettings
displayMode Steuert die Wiedergabe von erweitertem Anti-Aliasing-Text.String"default" Steuert die Wiedergabe von erweitertem Anti-Aliasing-Text. Die optische Qualität von Text wird subjektiv sehr unterschiedlich beurteilt. Flash Player versucht, die jeweils besten Einstellungen unter verschiedenen Bedingungen vorzunehmen. Unter Umständen wählen Designer für ihren Text jedoch eine andere Einstellung aus. Mit displayMode kann ein Designer auch die Subpixel-Auswahl in Flash Player außer Kraft setzen und unabhängig von der Hardware des Benutzers eine optische Einheitlichkeit erzielen. Legen Sie diese Eigenschaft mithilfe der Werte in der TextDisplayMode-Klasse fest. TextDisplayMode-KlassemaxLevel Die ADF-Qualitätsstufe (Adaptively Sampled Distance Fields) für erweitertes Anti-Aliasing.int4 Die ADF-Qualitätsstufe (Adaptively Sampled Distance Fields) für erweitertes Anti-Aliasing. Die einzigen zulässigen Werte sind 3, 4 und 7.

Beim erweiterten Anti-Aliasing werden die Konturen, die ein Zeichen bestimmen, mittels ADFs (Adaptively Sampled Distance Fields) dargestellt. Je höher die Qualität, desto mehr Cache-Speicherplatz wird für ADF-Strukturen benötigt. Der Wert 3 bedeutet die geringste Speicherbelastung und liefert die geringste Qualität. Größere Schriften erfordern mehr Pufferplatz. Bei einer Schriftgröße von 64 Pixel steigt die Qualitätsstufe von 3 auf 4 bzw. von 4 auf 7, sofern nicht bereits die Stufe 7 eingestellt ist.

TextLineMetrics Die TextLineMetrics-Klasse enthält Informationen zur Textposition und zu den Abmessungen einer Textzeile innerhalb eines Textfelds.Enthält Informationen zur Textposition und zu den Maßen einer Textzeile innerhalb eines Textfelds. Object Die TextLineMetrics-Klasse enthält Informationen zur Textposition und zu den Maßen einer Textzeile innerhalb eines Textfelds. Alle Maße werden in Pixeln angegeben. Objekte dieser Klasse werden von der Methode flash.text.TextField.getLineMetrics() zurückgegeben.

Die Maße im Zusammenhang mit dem Textfeld, das die Textzeile enthält (z. B. das Maß „Textfeldhöhe“ im Diagramm), finden Sie unter „flash.text.TextField“.

Aus dem folgenden Diagramm gehen die Punkte und Maße eines Textfelds und der Textzeile innerhalb des Textfelds hervor:

Im folgenden Beispiel werden die Klassen TextLineMetricsExample und LineMetricsReader zum Druck einer Meldung im Flash Player über ein XML-Objekt erstellt. Dies wird in den folgenden Schritten erreicht:
  1. Erstellen Sie die Eigenschaft label vom Typ „TextField“.
  2. Der Konstruktor ruft die configureAssets()-Methode auf, die Folgendes durchführt:
    • Die Bühne wird oben links ausgerichtet und ohne Skalierung angezeigt.
    • Es wird das neue TextField-Objekt label erstellt.
    • Der Hintergrund von label wird aktiviert, und die Farbe wird auf weiß eingestellt.
    • Es wird festgelegt, dass sich der Text von label über mehrere Zeilen mit automatischem Zeilenumbruch erstrecken kann.
    • Das Ergebnis eines Aufrufs an getLabelText() wird der text-Eigenschaft von label zugewiesen. Mit der Methode getLabelText() wird eine Variable vom Typ XML erstellt und dem XML-Knoten body zugewiesen, der einen langen Satz enthält.
    • label wird der Anzeigeliste mithilfe von addChild() hinzugefügt.
  3. Anschließend wird die resizeHandler()-Methode hinzugefügt, die als Listener für resize-Ereignisse auf der Bühne fungiert. Bei jeder Größenänderung des Flash Player-Fensters wird ein RESIZE-Ereignis ausgelöst. Dies hat die folgenden Auswirkungen:
    • draw() wird aufgerufen, damit label in der Mitte der Bühne, umgeben von einem 10-Pixel-Puffer, angezeigt wird.
    • setTimeout() führt showMetrics() anschließend nach einer kurzen Verzögerung aus. Die Verzögerung wird dadurch verursacht, dass die Textzeilenmaße erst nach Abschluss des RESIZE-Ereignisses und nach der vollständigen Neuzeichnung der Bühne aktualisiert werden.
    • Mit showMetrics() wird die TextLineMetrics-Variable metrics dem Ergebnis eines Aufrufs von getLineMetrics() zugewiesen. Diese Variable wird anschließend an eine neue Instanz der LineMetricsReader-Instanz reader übergeben. Die beiden Variablen werden anschließend in Aufrufen von trace() zum Drucken der ersten (und einzigen) Zeile von label und Informationen aus der LineMetricsReader-Instanz (über die toString()-Methode) verwendet.
  4. Der Konstruktor erzwingt eine einmalige Auslösung resize-Ereignisses, damit label beim ersten Laden der SWF-Datei richtig gezeichnet wird.
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.text.TextField; import flash.text.TextLineMetrics; import flash.utils.setTimeout; public class TextLineMetricsExample extends Sprite { private var gutter:int = 10; private var label:TextField; public function TextLineMetricsExample() { configureAssets(); configureListeners(); resizeHandler(new Event(Event.RESIZE)); } private function showMetrics():void { var metrics:TextLineMetrics = label.getLineMetrics(0); var reader:LineMetricsReader = new LineMetricsReader(metrics); trace("lineText: " + label.getLineText(0)); trace("metrics: " + reader); } private function configureAssets():void { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; label = new TextField(); label.background = true; label.backgroundColor = 0xFFFFFF; label.multiline = true; label.wordWrap = true; label.text = getLabelText(); addChild(label); } private function configureListeners():void { stage.addEventListener(Event.RESIZE, resizeHandler); } private function resizeHandler(event:Event):void { draw(); setTimeout(showMetrics, 100); } private function draw():void { label.x = gutter; label.y = gutter; label.width = stage.stageWidth - (gutter * 2); label.height = stage.stageHeight - (gutter * 2); } private function getLabelText():String { var text:XML = <body>The Flex product line enables developers to build rich Internet applications that blend the responsiveness of desktop software, the cross-platform reach of the web, and the expressiveness of the Flash Platform.</body> return text.toString(); } } } import flash.text.TextLineMetrics; class LineMetricsReader { private var metrics:TextLineMetrics; public function LineMetricsReader(metrics:TextLineMetrics) { this.metrics = metrics; } public function toString():String { return "[TextLineMetrics ascent:" + metrics.ascent + ", descent:" + metrics.descent + ", leading:" + metrics.leading + ", width:" + metrics.width + ", height:" + metrics.height + ", x:" + metrics.x + "]"; } }
flash.text.TextFieldTextLineMetrics Erstellt ein TextLineMetrics-Objekt.xNumberDie linke Position des ersten Zeichens in Pixel. widthNumber[Die Breite des Texts in den ausgewählten Zeilen (nicht unbedingt des gesamten Texts) in Pixel. heightNumberDie Höhe des Texts in den ausgewählten Zeilen (nicht unbedingt des gesamten Texts) in Pixel. ascentNumberDie Länge von der Grundlinie bis zur obersten Stelle der Zeile in Pixel. descentNumberDie Länge von der Grundlinie bis zur untersten Stelle der Zeile in Pixel. leadingNumberDer vertikale Abstand zwischen den Textzeilen. Enthält Informationen zur Textposition und zu den Maßen einer Textzeile innerhalb eines Textfelds. Erstellt ein TextLineMetrics-Objekt. Das TextLineMetrics-Objekt enthält Informationen zu den Maßen einer Textzeile innerhalb eines Textfelds. Objekte dieser Klasse werden von der Methode flash.text.TextField.getLineMetrics() zurückgegeben.

Kontextinformationen zu den verschiedenen Eigenschaften finden Sie im Übersichtsdiagramm für diese Klasse.

Übersicht über die TextLineMetrics-Klasseflash.text.TextField.getLineMetrics()
ascent Die Oberlänge des Texts ist die Länge von der Grundlinie bis zur Oberkante der Zeile in Pixel.Number Die Oberlänge des Texts ist die Länge von der Grundlinie bis zur Oberkante der Zeile in Pixel. Siehe „Oberlänge“ im Übersichtsdiagramm für diese Klasse. Übersicht über die TextLineMetrics-Klassedescent Die Unterlänge des Texts ist die Länge von der Grundlinie bis zur Unterkante der Zeile in Pixel.Number Die Unterlänge des Texts ist die Länge von der Grundlinie bis zur Unterkante der Zeile in Pixel. Siehe „Unterlänge“ im Übersichtsdiagramm für diese Klasse. Übersicht über die TextLineMetrics-Klasseheight Die Höhe des Texts in den ausgewählten Zeilen (nicht unbedingt des gesamten Texts) in Pixel.Number Die Höhe des Texts in den ausgewählten Zeilen (nicht unbedingt des gesamten Texts) in Pixel. Die Höhe der Textzeile umfasst nicht die Höhe des Zwischenraums. Siehe „Zeilenhöhe“ im Übersichtsdiagramm für diese Klasse. Übersicht über die TextLineMetrics-Klasseleading [Der Zeilenabstand ist der vertikale Abstand zwischen den Textzeilen.Number [Der Zeilenabstand ist der vertikale Abstand zwischen den Textzeilen. Siehe „Zeilenabstand“ im Übersichtsdiagramm für diese Klasse. Übersicht über die TextLineMetrics-Klassewidth Der Wert für die Breite ist die Textbreite in den ausgewählten Zeilen (nicht unbedingt des gesamten Texts) in Pixel.Number Der Wert für die Breite ist die Textbreite in den ausgewählten Zeilen (nicht unbedingt des gesamten Texts) in Pixel. Die Breite der Textzeile ist nicht identisch mit der Breite des Textfelds. Die Breite der Textzeile muss relativ zur Textfeldbreite gesehen werden (abzüglich des Zwischenraums von 4 Pixel, d. h. 2 Pixel auf jeder Seite). Siehe „Breite der Textzeile“ im Übersichtsdiagramm für diese Klasse. Übersicht über die TextLineMetrics-Klassex Der x-Wert ist die linke Position des ersten Zeichens in Pixel.Number Der x-Wert ist die linke Position des ersten Zeichens in Pixel. Dieser Wert umfasst den Rand, eventuelle Einzüge und den Zwischenraum. Siehe „x-Position der Textzeile“ im Übersichtsdiagramm für diese Klasse. Übersicht über die TextLineMetrics-Klasse
TextInteractionMode Eine Klasse, die den interaktiven Modus eines Textfeldobjekts definiert.Object Eine Klasse, die den interaktiven Modus eines Textfeldobjekts definiert. NORMAL Der standardmäßige Interaktionsmodus des Textfeldes ist NORMAL und variiert je nach Plattform.normalString Der standardmäßige Interaktionsmodus des Textfeldes ist NORMAL und variiert je nach Plattform. Auf dem Desktop bedeutet der normale Modus, dass ein Bildlauf ausgeführt und der Text ausgewählt werden kann. Auf mobilen Plattformen, zum Beispiel unter Android, bedeutet der normale Modus, dass zwar ein Bildlauf für das Textfeld ausgeführt werden kann, der Text jedoch nicht ausgewählt werden kann. SELECTION Auf mobilen Plattformen wie Android beginnt das Textfeld im normalen Modus (der Bildlauf und nicht auswählbaren Modus impliziert).selectionString Auf mobilen Plattformen wie Android beginnt das Textfeld im normalen Modus (der Bildlauf und nicht auswählbaren Modus impliziert). Über das integrierte Kontextmenü des Textfeldobjekts kann der Benutzer in den Auswahlmodus wechseln. StyleSheet Mit der StyleSheet-Klasse können Sie ein StyleSheet-Objekt erstellen, das Textformatierungsregeln für Schriftgröße und Farbe sowie für weitere Stile enthält.Ermöglicht die Erstellung eines StyleSheet-Objekts. flash.events:EventDispatcher Mit der StyleSheet-Klasse können Sie ein StyleSheet-Objekt erstellen, das Textformatierungsregeln für Schriftgröße und Farbe sowie für weitere Stile enthält. Anschließend können Sie durch ein Stylesheet definierte Stile auf ein TextField-Objekt anwenden, das HTML- oder XML-formatierten Text enthält. Der im TextField-Objekt enthaltene Text wird dann automatisch entsprechend den Tag-Stilen formatiert, die durch das StyleSheet-Objekt definiert sind. Sie können Textstile zum Definieren von Formatierungstags verwenden, integrierte HTML-Tags neu definieren oder Stilklassen erstellen, die auf bestimmte HTML-Tags angewendet werden.

Wenn Sie auf ein TextField-Objekt Stile anwenden möchten, weisen Sie das StyleSheet-Objekt der Eigenschaft styleSheet eines TextField-Objekts zu.

Hinweis: Ein Textfeld mit einem Stylesheet, das nicht bearbeitet werden kann. Mit anderen Worten: Ein Textfeld, bei dem die type-Eigenschaft auf TextFieldType.INPUT gesetzt ist, wendet das Stylesheet auf den Standardtext eines Textfelds an, aber der Inhalt kann vom Benutzer nicht mehr bearbeitet werden. Ziehen Sie es in Betracht, die TextFormat-Klasse für die Zuweisung von Stilen zu Eingabetextfeldern zu verwenden.

Flash Player unterstützt einen Teilsatz der Eigenschaften aus der ursprünglichen CSS1-Spezifikation (www.w3.org/TR/REC-CSS1). In der folgenden Tabelle finden Sie die unterstützten CSS-Eigenschaften (Cascading Style Sheet) und Werte sowie die entsprechenden ActionScript-Eigenschaftennamen. (Die Namen der einzelnen ActionScript-Eigenschaften werden von der entsprechenden Bezeichnung der CSS-Eigenschaften abgeleitet, wenn der Name einen Bindestrich enthält. Dabei fällt der Bindestrich weg, und das nachfolgende Zeichen wird groß geschrieben.)

CSS-EigenschaftActionScript-EigenschaftVerwendung und unterstützte WertecolorcolorEs werden nur hexadezimale Farbwerte unterstützt. Benannte Farben (wie blue) werden nicht unterstützt. Farben werden im folgenden Format geschrieben: #FF0000 .displaydisplayUnterstützte Werte sind inline, block und none.font-familyfontFamilyEine zu verwendende kommagetrennte Schriftenliste, in absteigender Reihenfolge der Präferenz. Es lassen sich beliebige Namen für die Schriftart verwenden. Wenn Sie eine generische Schriftartbezeichnung wählen, wird diese in eine entsprechende Geräteschriftart konvertiert. Die folgenden Schriftkonvertierungen stehen zur Verfügung: mono wird in _typewriter konvertiert, sans-serif in _sans und serif in _serif.font-sizefontSize Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.font-stylefontStyleDie Werte normal und italic werden erkannt.font-weightfontWeightDie Werte normal und bold sind gültig.kerningkerningDie Werte true und false werden erkannt. Kerning wird nur für eingebettete Schriftarten unterstützt. Gewisse Schriftarten wie beispielsweise Courier New unterstützen Kerning nicht. Die Kerning-Eigenschaft wird nur in unter Windows erzeugten SWF-Dateien unterstützt, nicht jedoch in auf Macintosh-Systemen erzeugten SWF-Dateien. Diese SWF-Dateien können jedoch in Nicht-Windows-Versionen von Flash Player wiedergegeben werden. Das Kerning bleibt hierbei erhalten.leadingleadingDer Platz, der gleichmäßig zwischen den Zeilen aufgeteilt wird. Der Wert gibt an, wie viele Pixel Leerraum hinter jeder Zeile einzufügen sind. Bei einem negativen Wert wird der Platz zwischen den Zeilen verkleinert. Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.letter-spacingletterSpacingDer Platz, der gleichmäßig zwischen den Zeichen aufgeteilt wird. Der Wert gibt an, wie viele Pixel Leerraum hinter jedem Zeichen einzufügen sind. Bei einem negativen Wert wird der Platz zwischen den Zeichen verkleinert. Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.margin-leftmarginLeftNur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig. margin-rightmarginRightNur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.text-aligntextAlignDie Werte left, center, right und justify werden erkannt.text-decorationtextDecorationDie Werte none und underline werden erkannt.text-indenttextIndentNur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.

Mit der StyleSheet-Klasse können Sie Text-Rendering auf niedriger Ebene durchführen. In Flex verwenden Sie jedoch normalerweise die Steuerelemente „Label“, „Text“, „TextArea“ und „TextInput“ zur Textverarbeitung.

Im folgenden Beispiel wird ein neues Stylesheet erstellt, und für die Überschrift wird ein Stil mit roter Schrift und Fettformatierung festgelegt. package { import flash.display.Sprite; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class StyleSheetExample extends Sprite { public function StyleSheetExample() { var style:StyleSheet = new StyleSheet(); var heading:Object = new Object(); heading.fontWeight = "bold"; heading.color = "#FF0000"; var body:Object = new Object(); body.fontStyle = "italic"; style.setStyle(".heading", heading); style.setStyle("body", body); var label:TextField = new TextField(); label.styleSheet = style; label.htmlText = "<body><span class='heading'>Hello </span>World...</body>"; addChild(label); } } }
flash.text.TextFieldStyleSheet Erstellt ein neues StyleSheet-Objekt. Erstellt ein neues StyleSheet-Objekt. flash.text.StyleSheet.getStyle()clear Entfernt sämtliche Stile aus dem StyleSheet-Objekt. Entfernt sämtliche Stile aus dem StyleSheet-Objekt. getStyle Gibt eine Kopie des Stilobjekts zurück, das mit dem Stil „styleName“ verknüpft ist.Ein Objekt. ObjectstyleNameStringEin String, der den Namen des abzurufenden Stils angibt. Gibt eine Kopie des Stilobjekts zurück, das mit dem Stil styleName verknüpft ist. Wenn kein Stilobjekt mit styleName verknüpft ist, wird null zurückgegeben. Die Verwendung der Methode getStyle() wird im Beispiel für die parseCSS()- oder transform()-Methode veranschaulicht. flash.text.StyleSheet.setStyle()parseCSS Parst die CSS-Datei in CSSText und lädt gleichzeitig das Stylesheet.CSSTextStringDer zu parsende CSS-Text (ein String). Liest die CSS-Datei in cssText ein und lädt gleichzeitig das Stylesheet. Parst die CSS-Datei in CSSText und lädt gleichzeitig das Stylesheet. Wenn sich ein Stil in CSSText bereits im styleSheet-Objekt befindet, behält dieses seine styleSheet-Eigenschaften bei, und nur die Eigenschaften in CSSText werden dem styleSheet hinzugefügt oder geändert.

Wenn Sie die native CSS-Parsingfähigkeit erweitern möchten, können Sie diese Methode übersteuern, indem Sie eine Unterklasse der StyleSheet-Klasse erstellen.

Im folgenden Beispiel werden beim Klicken auf das Textfeld aus einer Datei geladene CSS-Stile auf den Inhalt angewendet.

Im Konstruktor wird ein mehrzeiliges Textfeld erstellt, und der Inhalt wird auf einen HTML-formatierten String festgelegt. (Die HTML-Tags „heading“ und „span“ werden nicht dargestellt, bevor der CSS-Stil angewendet wird.) Es wird ein URLRequest-Objekt erstellt, um den Speicherort der CSS-Datei anzugeben. In diesem Beispiel befindet sie sich im selben Verzeichnis wie die SWF-Datei. Die Datei wird mit einem URLLoader-Objekt geladen. Zwei Ereignis-Listener werden für das URLLoader-Objekt loader hinzugefügt. Wenn ein IO-Fehler auftritt, wird die errorHandler()-Methode aufgerufen, die eine Fehlermeldung im Textfeld anzeigt. Nachdem alle Daten empfangen und in der Dateneigenschaft des loader-Objekts URLLoader platziert wurden, wird die loaderCompleteHandler()-Methode aufgerufen. Diese Methode parst dann die CSS-Stile aus den aus der Datei geladenen Daten und füllt das StyleSheet-Objekt sheet mit den Stildefinitionen.

Wenn der Benutzer auf das Textfeld klickt, wird die clickHandler()-Methode aufgerufen. Mit der if-Anweisung in der clickHandler()-Methode wird überprüft, ob der Dateiladevorgang abgeschlossen wurde, bevor das Stylesheet auf das Textfeld angewendet wird. Damit das Stylesheet wirksam wird, muss die htmlText-Eigenschaft dem Inhalt neu zugewiesen werden, nachdem das Stylesheet dem Textfeld zugewiesen wurde. Die Werte der CSS-Eigenschaft font-family und der color-Eigenschaft für das Heading-Tag werden ebenfalls dem Inhalt des Textfelds angehängt. (Die Werte dieser Eigenschaften sind „undefined“, wenn keine Stylesheet-Werte wirksam sind.)

Nachstehend finden Sie ein Beispiel für Inhalt einer CSS-Datei, die mit diesem Beispiel verwendet werden kann. Bevor Sie dieses Beispiel ausführen, erstellen Sie eine Textdatei, kopieren Sie den nachstehenden CSS-Inhalt in diese Datei, speichern Sie sie unter dem Dateinamen test.css und legen Sie sie im selben Verzeichnis wie die SWF-Datei ab.

   p {
      font-family: Times New Roman, Times, _serif;
      font-size: 14;
       font-Style: italic;
        margin-left: 10;  
   }
   h1 {
      font-family: Arial, Helvetica, _sans;
      font-size: 20;
      font-weight: bold;
   }
   .bluetext {
      color: #0000CC;
   }
 
package { import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.IOErrorEvent; import flash.events.Event; import flash.events.MouseEvent; public class StyleSheet_parseCSSExample extends Sprite { private var loader:URLLoader = new URLLoader(); private var field:TextField = new TextField(); private var exampleText:String = "<h1>This is a headline</h1>" + "<p>This is a line of text. <span class='bluetext'>" + "This line of text is colored blue.</span></p>"; private var sheet:StyleSheet = new StyleSheet(); private var cssReady:Boolean = false; public function StyleSheet_parseCSSExample() { field.x = 10; field.y = 10; field.background = true; field.multiline = true; field.autoSize = TextFieldAutoSize.LEFT; field.htmlText = exampleText; field.addEventListener(MouseEvent.CLICK, clickHandler); addChild(field); var req:URLRequest = new URLRequest("test.css"); loader.load(req); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); } public function errorHandler(e:IOErrorEvent):void { field.htmlText = "Couldn't load the style sheet file."; } public function loaderCompleteHandler(event:Event):void { sheet.parseCSS(loader.data); cssReady = true; } public function clickHandler(e:MouseEvent):void { if (cssReady) { field.styleSheet = sheet; field.htmlText = exampleText; var style:Object = sheet.getStyle("h1"); field.htmlText += "<p>Headline font-family is: " + style.fontFamily + "</p>"; field.htmlText += "<p>Headline color is: " + style.color + "</p>"; } else { field.htmlText = "Couldn't apply the CSS styles."; } } } }
setStyle Fügt dem StyleSheet-Objekt einen neuen Stil mit dem angegebenen Namen hinzu.styleNameStringEin String, der den Namen des Stils angibt, der dem Stylesheet hinzugefügt werden soll. styleObjectObjectEin Objekt, das den Stil beschreibt (oder null). Fügt dem StyleSheet-Objekt einen neuen Stil mit dem angegebenen Namen hinzu. Der benannte Stil wird hinzugefügt, wenn er nicht bereits im Stylesheet vorhanden ist. Der benannte Stil wird ersetzt, wenn er bereits im Stylesheet vorhanden ist. Wenn der styleObject-Parameter auf null gesetzt ist, wird der benannte Stil entfernt.

Flash Player erstellt eine Kopie des Stilobjekts, das dieser Methode übergeben wird.

Eine Liste der unterstützten Stile finden Sie in der Tabelle zur Beschreibung der StyleSheet-Klasse.

transform Erweitert die CSS-Parsingfähigkeit.Ein TextFormat-Objekt, das das Ergebnis der Zuordnung von CSS-Regeln zu Textformateigenschaften enthält. flash.text:TextFormatformatObjectObjectEin Objekt, das den Stil beschreibt und das Stilregeln als Objekteigenschaften (bzw. null) enthält. Erweitert die CSS-Parsingfähigkeit. Erfahrene Entwickler können diese Methode durch Erweitern der StyleSheet-Klasse überschreiben. In diesem Beispiel wird mit der transform()-Methode ein Stil aus einer CSS-Datei auf ein TextFormat-Objekt für ein Textfeld angewendet.

CSS-Stile werden im Allgemeinen für die Formatierung von HTML-Inhalten verwendet. Mit der transform()-Methode eines StyleSheet-Objekts können bestimmte CSS-Stile jedoch einem TextFormat-Objekt zugewiesen und dann auf ein beliebiges Textfeld angewendet werden.

Die URLRequest- und URLLoader-Objekte werden zum Laden der CSS-Datei verwendet. Es wird ein Ereignis-Listener für das Event.COMPLETE-Ereignis hinzugefügt, das eintritt, nachdem alle Daten empfangen und in der data-Eigenschaft des URLLoader-Objekts loader platziert wurden. Die loaderCompleteHandler()-Methode parst dann den CSS aus den aus der Datei geladenen Daten und füllt das StyleSheet-Objekt sheet mit den Stilen. Die getStyle()-Methode des Stylesheets ruft die HTML-Absatzstile ab, die dann mit der transform()-Methode des Stylesheets dem TextFormat-Objekt cssFormat zugewiesen werden. Schließlich wird das Standardtextformat des Textfelds inputField auf das neue Textformat cssFormat gesetzt.

package { import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldType; import flash.events.IOErrorEvent; import flash.events.Event; public class StyleSheet_transformExample extends Sprite { private var loader:URLLoader = new URLLoader(); private var inputField:TextField = new TextField(); private var sheet:StyleSheet = new StyleSheet(); public function StyleSheet_transformExample() { inputField.x = 10; inputField.y = 10; inputField.background = true; inputField.width = 300; inputField.height = 200; inputField.wordWrap = true; inputField.multiline = true; inputField.type = TextFieldType.INPUT; addChild(inputField); var req:URLRequest = new URLRequest("test.css"); loader.load(req); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); } public function errorHandler(e:IOErrorEvent):void { inputField.htmlText = "Couldn't load the style sheet file."; } public function loaderCompleteHandler(event:Event):void { var cssFormat:TextFormat = new TextFormat(); sheet.parseCSS(loader.data); var style:Object = sheet.getStyle("p"); cssFormat = sheet.transform(style); inputField.defaultTextFormat = cssFormat; } } }
flash.text.TextFormat
styleNames Ein Array, das die Namen aller in diesem Stylesheet registrierten Stile als Strings enthält.ArrayGibt die Namen aller in diesem Stylesheet registrierten Stile zurück. Ein Array, das die Namen aller in diesem Stylesheet registrierten Stile als Strings enthält.
TextSnapshot Mit TextSnapshot-Objekten können Sie mit statischem Text in einem Movieclip arbeiten.Object Mit TextSnapshot-Objekten können Sie mit statischem Text in einem Movieclip arbeiten. Sie können die Objekte beispielsweise für ein präziseres Textlayout verwenden, als dies mit dynamischem Text möglich ist, jedoch weiterhin gewährleisten, dass der Text beim Zugriff schreibgeschützt ist.

Zum Erstellen eines TextSnapshot-Objekts ist kein Konstruktor erforderlich. Das Objekt wird von der Eigenschaft flash.display.DisplayObjectContainer.textSnapshot zurückgegeben.

flash.display.DisplayObjectContainer.textSnapshotfindText Sucht nach dem angegebenen TextSnapshot-Objekt und gibt die Position des ersten Auftretens von „textToFind“ bei oder nach „beginIndex“ zurück.Die auf null basierende Indexposition des ersten Vorkommens des angegebenen Texts (oder -1). intbeginIndexintGibt den Startpunkt für die Suche nach dem angegebenen Text an. textToFindStringGibt den zu suchenden Text an. Wenn Sie ein Stringliteral statt einer Variable vom Typ „String“ angeben, setzen Sie Anführungszeichen um den String. caseSensitiveBooleanGibt an, ob der Text dem String aus textToFind in Groß- und Kleinschreibung entsprechen muss. Sucht nach dem angegebenen TextSnapshot-Objekt und gibt die Position des ersten Auftretens von textToFind bei oder nach beginIndex zurück. Wenn textToFind nicht gefunden wird, gibt die Methode -1 zurück. flash.text.TextSnapshot.getText()getSelectedText Gibt einen String zurück, der alle von der entsprechenden setSelected()-Methode angegebenen Zeichen enthält.Ein String, der alle vom entsprechenden setSelected()-Befehl angegebenen Zeichen enthält. StringincludeLineEndingsBooleanfalseEin optionaler boolescher Wert, der festlegt, ob bei Bedarf Zeilenumbrüche in den Rückgabestring integriert werden. Der Standardwert ist false. Gibt einen String zurück, der alle von der entsprechenden setSelected()-Methode angegebenen Zeichen enthält. Werden (von der setSelected()-Methode) keine Zeichen angegeben, wird ein leerer String zurückgegeben.

Wenn Sie true für includeLineEndings übergeben, werden in den Rückgabe-String Zeilenumbrüche integriert, sodass dieser länger als der Eingabebereich sein kann. Ist includeLineEndings false oder wird dieser Wert weggelassen, gibt die Methode den ausgewählten Text zurück, ohne Zeichen hinzuzufügen.

flash.text.TextSnapshot.getSelected()flash.text.TextSnapshot.setSelected()
getSelected Gibt einen booleschen Wert zurück, der angibt, ob ein TextSnapshot-Objekt ausgewählten Text im angegebenen Bereich enthält.Ein boolescher Wert, der angibt, ob mindestens ein Zeichen im Bereich von der jeweiligen setSelected()-Methode ausgewählt wurde (true) oder nicht (false). BooleanbeginIndexintGibt die Position des ersten zu untersuchenden Zeichens an. Gültige Werte für beginIndex sind 0 bis TextSnapshot.charCount - 1. Ist beginIndex ein negativer Wert, wird 0 verwendet. endIndexintEin Wert, der gegenüber der Indexposition des letzten zu prüfenden Zeichens um eins erhöht wurde. Gültige Werte für endIndex sind 0 bis charCount. Das durch den Parameter endIndex indizierte Zeichen wird nicht in den extrahierten String aufgenommen. Wenn Sie diesen Parameter weglassen, wird charCount verwendet. Ist dieser Wert kleiner oder gleich dem Wert von beginIndex, wird beginIndex + 1 verwendet. Gibt einen booleschen Wert zurück, der angibt, ob ein TextSnapshot-Objekt ausgewählten Text im angegebenen Bereich enthält.

Wenn Sie alle Zeichen durchsuchen möchten, übergeben Sie den Wert 0 für start und charCount (oder eine sehr große Zahl) für end. Wenn Sie nur ein Zeichen durchsuchen möchten, übergeben Sie für den Parameter end eine Zahl, die um eins größer ist als der Wert des Parameters start.

flash.text.TextSnapshot.charCountflash.text.TextSnapshot.getText()flash.text.TextSnapshot.getSelectedText()flash.text.TextSnapshot.setSelected()
getTextRunInfo Gibt ein Array von Objekten zurück, das Informationen über eine Textreihe enthält.Ein Objekt-Array, in dem jedes Objekt Informationen zu einem bestimmten Zeichen im von den Parametern beginIndex und endIndex angegebenen Bereich enthält. Jedes Objekt enthält die folgenden elf Eigenschaften:
  • indexInRun: Ganzzahliger Index des Zeichens mit der Basis null. Dieser ist nicht relativ zur ausgewählten Textreihe, sondern zum gesamten String.
  • selected: Ein boolescher Wert, der angibt, ob das Zeichen ausgewählt ist (true) oder nicht (false).
  • font: Die Schriftart des Zeichens.
  • color: Der kombinierte Alpha- und Farbwert des Zeichens. Die ersten beiden hexadezimalen Stellen stehen für den Alphawert, die übrigen für den Farbwert.
  • height: Die Höhe des Zeichens in Pixel.
  • matrix_a, matrix_b, matrix_c, matrix_d, matrix_tx und matrix_ty: Die Werte einer Matrix, die die geometrische Umwandlung des Zeichens definieren. In der Regel weist aufrechter Text eine Matrix in der Form [1 0 0 1 x y] auf. Hierbei stehen x und y für die Position des Zeichens im übergeordneten Movieclip (unabhängig von der Texthöhe). Die Matrix liegt im Koordinatensystem des übergeordneten Movieclips und umfasst keine Transformationen im Movieclip selbst (oder in dessen übergeordnetem Element).
  • corner0x, corner0y, corner1x, corner1y, corner2x, corner2y, corner3x und corner3y: Die Ecken des Begrenzungsrahmens des Zeichens, basierend auf dem Koordinatensystem des übergeordneten Movieclips. Diese Werte stehen nur dann zur Verfügung, wenn die vom Zeichen verwendete Schrift in die SWF-Datei eingebettet ist.
Array
beginIndexintDer Indexwert des ersten Zeichens in einem Zeichenbereich eines TextSnapshot-Objekts. endIndexintDer Indexwert des letzten Zeichens in einem Zeichenbereich eines TextSnapshot-Objekts.
Gibt ein Array von Objekten zurück, das Informationen über eine Textreihe enthält. Jedes Objekt entspricht einem Zeichen in dem mit den zwei Methodenparametern angegebenen Zeichenbereich.

Hinweis: Bei Verwendung der getTextRunInfo()-Methode für einen großen Textbereich kann ein großes Objekt zurückgegeben werden. Adobe empfiehlt, den durch die Parameter beginIndex und endIndex definierten Textbereich zu begrenzen.

Matrix-Klasse
getText Gibt einen String zurück, der alle Zeichen enthält, die mit den Parametern „beginIndex“ und „endIndex“ angegeben werden.Ein String, der die Zeichen des angegebenen Bereichs enthält, oder ein leerer String, wenn im angegebenen Bereich keine Zeichen gefunden wurden. StringbeginIndexintGibt die Position des ersten Zeichens an, das in den Rückgabestring aufgenommen werden soll. Gültige Werte für beginIndex sind 0 bis charCount - 1. Ist beginIndex ein negativer Wert, wird 0 verwendet. endIndexintEin Wert, der gegenüber der Indexposition des letzten zu prüfenden Zeichens um eins erhöht wurde. Gültige Werte für endIndex sind 0 bis charCount. Das durch den Parameter endIndex indizierte Zeichen wird nicht in den extrahierten String aufgenommen. Wenn Sie diesen Parameter weglassen, wird charCount verwendet. Ist dieser Wert kleiner oder gleich dem Wert von beginIndex, wird beginIndex + 1 verwendet. includeLineEndingsBooleanfalseEin optionaler boolescher Wert, der festlegt, ob bei Bedarf Zeilenumbrüche in den Rückgabestring integriert werden (true) oder nicht (false). Der Standardwert ist false. Gibt einen String zurück, der alle Zeichen enthält, die mit den Parametern beginIndex und endIndex angegeben werden. Werden keine Zeichen ausgewählt, wird ein leerer String zurückgegeben.

Wenn alle Zeichen zurückgegeben werden sollen, übergeben Sie den Wert 0 für beginIndex und charCount (oder eine sehr große Zahl) für endIndex. Um ein einzelnes Zeichen zurückzugeben, geben Sie den Wert beginIndex + 1 für endIndex an.

Wenn Sie den Wert true für includeLineEndings übergeben, werden bei Bedarf Zeilenumbrüche in den Rückgabestring eingefügt. In diesem Fall überschreitet der Rückgabestring unter Umständen den zulässigen Eingabebereich. Ist includeLineEndings false oder wird dieser Wert weggelassen, wird der ausgewählte Text ohne zusätzliche Zeichen zurückgegeben.

flash.text.TextSnapshot.charCountflash.text.TextSnapshot.getSelectedText()
hitTestTextNearPos Hiermit können Sie bestimmen, welches Zeichen innerhalb eines TextSnapshot-Objekts sich nahe an oder auf den angegebenen x- und y-Koordinaten des Movieclips befindet, der den Text im TextSnapshot-Objekt enthält.Eine Zahl, die für den Indexwert des Zeichens steht, das sich am nächsten an der angegebenen x- und y-Koordinate befindet. Gibt -1 zurück, wenn kein Zeichen gefunden wurde oder die Schriftart keine metrischen Zeicheninformationen enthält. NumberxNumberEine Zahl, die für die x-Koordinate des Movieclips mit dem Text steht. yNumberEine Zahl, die für die y-Koordinate des Movieclips mit dem Text steht. maxDistanceNumber0Eine optionale Zahl, die den maximalen Abstand von dem durch x und y definierten Punkt darstellt, an dem nach Text gesucht werden kann. Der Abstand wird vom Mittelpunkt der einzelnen Zeichen gemessen. Der Standardwert ist 0. Damit können Sie bestimmen, welches Zeichen innerhalb eines TextSnapshot-Objekts sich nahe an oder auf den angegebenen x, y-Koordinaten des Movieclips befindet, der den Text im TextSnapshot-Objekt enthält.

Wenn Sie den Wert 0 für maxDistance übergeben oder diesen Parameter auslassen, muss sich der durch die x-, y-Koordinaten angegebene Ort innerhalb der Begrenzungsbox des TextSnapshot-Objekts befinden.

Diese Methode funktioniert nur für Schriftarten ordnungsgemäß, die metrische Zeicheninformationen enthalten. Das Flash-Authoring-Tool nimmt diese Informationen für statische Textfelder jedoch standardmäßig nicht auf. Aus diesem Grund kann die Methode an Stelle eines Indexwerts -1 zurückgeben. Um die Rückgabe eines Indexwerts sicherzustellen, können Sie die Flash-Authoring-Anwendung zwingen, die metrischen Zeicheninformationen für eine Schriftart aufzunehmen. Dazu müssen Sie ein dynamisches Textfeld hinzufügen, das diese Schriftart verwendet, für dieses dynamische Textfeld „Zeichenoptionen“ auswählen und angeben, dass die Schriftkonturen für mindestens ein Zeichen eingebettet werden sollen. Es ist gleich, welche Zeichen Sie angeben; sie müssen nicht einmal in den fraglichen statischen Textfeldern verwendet werden.

flash.display.DisplayObject.xflash.display.DisplayObject.y
setSelectColor Gibt die zu verwendende Farbe zum Hervorheben von Zeichen an, die mit der Methode „setSelected()“ ausgewählt wurden.hexColoruint0xFFFF00Die Farbe für die Begrenzungen um Zeichen, die mit dem entsprechenden setSelected()-Befehl ausgewählt wurden. Die Farbe wird im Hexadezimalformat (0xRRGGBB) angegeben. Gibt die zu verwendende Farbe zum Hervorheben von Zeichen an, die mit der Methode setSelected() ausgewählt wurden. Die Farbe ist immer undurchsichtig; Sie können keinen Transparenzwert festlegen.

Diese Methode funktioniert nur für Schriftarten ordnungsgemäß, die metrische Zeicheninformationen enthalten. Das Flash-Authoring-Tool nimmt diese Informationen für statische Textfelder jedoch standardmäßig nicht auf. Aus diesem Grund kann die Methode an Stelle eines Indexwerts -1 zurückgeben. Um die Rückgabe eines Indexwerts sicherzustellen, können Sie die Flash-Authoring-Anwendung zwingen, die metrischen Zeicheninformationen für eine Schriftart aufzunehmen. Dazu müssen Sie ein dynamisches Textfeld hinzufügen, das diese Schriftart verwendet, für dieses dynamische Textfeld „Zeichenoptionen“ auswählen und angeben, dass die Schriftkonturen für mindestens ein Zeichen eingebettet werden sollen. Es ist gleich, welche Zeichen Sie angeben; sie müssen nicht einmal in den fraglichen statischen Textfeldern verwendet werden.

flash.text.TextSnapshot.setSelected()
setSelected Gibt eine Reihe von Zeichen in einem TextSnapshot-Objekt an, die ausgewählt werden sollen bzw. deren Auswahl aufgehoben werden soll.beginIndexintGibt die Position des ersten auszuwählenden Zeichens an. Gültige Werte für beginIndex sind 0 bis charCount - 1. Ist beginIndex ein negativer Wert, wird 0 verwendet. endIndexintEine Ganzzahl, die um 1 größer ist als der Index des letzten zu prüfenden Zeichens. Gültige Werte für end sind 0 bis charCount. Das durch den Parameter end indizierte Zeichen wird nicht in den extrahierten String aufgenommen. Wenn Sie diesen Parameter weglassen, wird TextSnapshot.charCount verwendet. Ist der Wert von beginIndex kleiner oder gleich dem Wert von endIndex, wird beginIndex + 1 verwendet. selectBooleanEin boolescher Wert, der angibt, ob der Text ausgewählt werden soll (true) oder ob die Textauswahl aufgehoben werden soll (false). Gibt eine Reihe von Zeichen in einem TextSnapshot-Objekt an, die ausgewählt werden sollen bzw. deren Auswahl aufgehoben werden soll. Ausgewählte Zeichen werden mit einem farbigen Rechteck hinterlegt dargestellt, das der Begrenzungsbox des Zeichens entspricht. Die Farbe der Begrenzungsbox wird von setSelectColor() definiert.

Wenn Sie alle Zeichen auswählen oder die Auswahl für alle Zeichen aufheben möchten, übergeben Sie den Wert 0 für beginIndex und charCount (oder eine sehr große Zahl) für endIndex. Um ein einzelnes Zeichen anzugeben, geben Sie den Wert start + 1 für endIndex an.

Da Zeichen individuell als ausgewählt markiert sind, können Sie diese Methode mehrfach aufrufen, um mehrere Zeichen auszuwählen; d. h., durch Verwendung dieser Methode wird die Auswahl anderer Zeichen, die durch diesen Befehl gesetzt wurden, nicht aufgehoben.

Das farbige Rechteck, mit dem eine Auswahl markiert ist, wird nur für Schriftarten angezeigt, die metrische Zeicheninformationen enthalten. Flash nimmt diese Informationen für statische Textfelder standardmäßig nicht auf. In einigen Fällen bedeutet dieses Verhalten, dass ausgewählter Text nicht als ausgewählt auf dem Bildschirm angezeigt wird. Um sicherzustellen, dass ausgewählter Text auch ausgewählt angezeigt wird, können Sie die Flash-Authoring-Anwendung zwingen, die Flash-Authoring-Anwendung für eine Schriftart aufzunehmen. Dazu müssen Sie ein dynamisches Textfeld hinzufügen, das diese Schriftart verwendet, für dieses dynamische Textfeld „Zeichenoptionen“ auswählen und angeben, dass die Schriftkonturen für mindestens ein Zeichen eingebettet werden sollen. Es spielt keine Rolle, welche Zeichen Sie angeben; sie müssen nicht einmal in den fraglichen statischen Textfeldern verwendet werden.

flash.text.TextSnapshot.charCountflash.text.TextSnapshot.setSelectColor()
charCount Gibt die Zeichenanzahl in einem TextSnapshot-Objekt zurück.int Gibt die Zeichenanzahl in einem TextSnapshot-Objekt zurück. flash.text.TextSnapshot.getText()
TextFieldAutoSize Die TextFieldAutoSize-Klasse ist eine Zusammenfassung von Konstantenwerten, die zur Einstellung der Eigenschaft „autoSize“ in der TextField-Klasse verwendet werden.Object Die TextFieldAutoSize-Klasse ist eine Zusammenfassung von Konstantenwerten, die zur Einstellung der Eigenschaft autoSize in der TextField-Klasse verwendet werden. flash.text.TextField.autoSizeCENTER Gibt an, dass der Text als zentriert ausgerichteter Text behandelt werden soll.centerString Gibt an, dass der Text als zentriert ausgerichteter Text behandelt werden soll. Eine Größenänderungen in einem einzeiligen Textfeld wird gleichmäßig auf den rechten und linken Rand verteilt. LEFT Gibt an, dass der Text als linksbündiger Text behandelt werden soll, d. h., die linke Seite des Textfelds bleibt fixiert, und Größenänderungen eines einzeiligen Textfelds werden auf der rechten Seite vorgenommen.leftString Gibt an, dass der Text als linksbündiger Text behandelt werden soll, d. h., die linke Seite des Textfelds bleibt fixiert, und Größenänderungen eines einzeiligen Textfelds werden auf der rechten Seite vorgenommen. NONE Gibt an, dass keine Größenänderung erfolgt.noneString Gibt an, dass keine Größenänderung erfolgt. RIGHT Gibt an, dass der Text als rechtsbündiger Text behandelt werden soll, d. h., die rechte Seite des Textfelds bleibt fixiert, und Größenänderungen eines einzeiligen Textfelds werden auf der linken Seite vorgenommen.rightString Gibt an, dass der Text als rechtsbündiger Text behandelt werden soll, d. h., die rechte Seite des Textfelds bleibt fixiert, und Größenänderungen eines einzeiligen Textfelds werden auf der linken Seite vorgenommen. TextFieldType Die TextFieldType-Klasse ist eine Zusammenfassung von Konstantenwerten, die zur Einstellung der Eigenschaft „type“ in der TextField-Klasse verwendet werden.Object Die TextFieldType-Klasse ist eine Zusammenfassung von Konstantenwerten, die zur Einstellung der Eigenschaft type in der TextField-Klasse verwendet werden. flash.text.TextField.typeDYNAMIC Wird zur Angabe eines TextField-Objekts vom Typ „dynamic“ verwendet.dynamicString Wird zur Angabe eines TextField-Objekts vom Typ dynamic verwendet. INPUT Wird zur Angabe eines TextField-Objekts vom Typ „input“ verwendet.inputString Wird zur Angabe eines TextField-Objekts vom Typ input verwendet. FontStyle Die FontStyle-Klasse enthält Werte für die TextRenderer-Klasse.Object Die FontStyle-Klasse enthält Werte für die TextRenderer-Klasse. flash.text.TextRendererBOLD_ITALIC Definiert den Fett- und Kursivstil einer Schriftart für den Parameter „fontStyle“ in der Methode „setAdvancedAntiAliasingTable()“.boldItalicString Definiert den Fett- und Kursivstil einer Schriftart für den Parameter fontStyle in der Methode setAdvancedAntiAliasingTable(). Verwenden Sie die Syntax FontStyle.BOLD_ITALIC. flash.text.TextRenderer.setAdvancedAntiAliasingTable()BOLD Definiert den Fettstil einer Schriftart für den Parameter „fontStyle“ in der Methode „setAdvancedAntiAliasingTable()“.Bob Pappas boldString Definiert den Fettstil einer Schriftart für den Parameter fontStyle in der Methode setAdvancedAntiAliasingTable(). Verwenden Sie die Syntax FontStyle.BOLD. flash.text.TextRenderer.setAdvancedAntiAliasingTable()ITALIC Definiert den Kursivstil einer Schriftart für den Parameter „fontStyle“ in der Methode „setAdvancedAntiAliasingTable()“.italicString Definiert den Kursivstil einer Schriftart für den Parameter fontStyle in der Methode setAdvancedAntiAliasingTable(). Verwenden Sie die Syntax FontStyle.ITALIC. flash.text.TextRenderer.setAdvancedAntiAliasingTable()REGULAR Definiert den Normalstil einer Schriftart für den Parameter „fontStyle“ in der Methode „setAdvancedAntiAliasingTable()“.Bob Pappas regularString Definiert den Normalstil einer Schriftart für den Parameter fontStyle in der Methode setAdvancedAntiAliasingTable(). Verwenden Sie die Syntax FontStyle.REGULAR. flash.text.TextRenderer.setAdvancedAntiAliasingTable()