Paket | flash.text.engine |
Klasse | public final class TextBlock |
Vererbung | TextBlock Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Die TextBlock-Klasse ist so konzipiert, dass sie einen einzelnen Absatz enthält, da die bidirektionalen und Zeilenumbruch-Unicode-Algorithmen jeweils für einen Absatz gelten. Für Anwendungen, die mehrere Textabsätze zusammenstellen, verwenden Sie eine Markup-Sprache oder Textanalyse, um den Text in Absätze zu unterteilen und dann einen TextBlock pro Absatz zu erstellen.
Das TextBlock-Objekt speichert seinen Inhalt in der content
-Eigenschaft, die eine Instanz der ContentElement-Klasse ist. Da Sie keine Instanz der ContentElement-Klasse erstellen können, legen Sie content
auf eine Instanz einer ihrer Unterklassen fest: TextElement, GraphicElement oder GroupElement. Verwenden Sie TextElement für reine Textinhalte, GraphicElement für Bild- oder Grafikelemente und GroupElement für Inhalte, die aus einer Kombination von TextElement-, GraphicElement- und anderen GroupElement-Objekten bestehen. Weitere Informationen zum Verwalten von formatierten Textfolgen, eingebetteten Unterfolgen und grafischen Elementen finden Sie in der Beschreibung der ContentElement-Klasse und ihrer Unterklassen.
Nachdem Sie die TextBlock-Instanz erstellt und die content
-Eigenschaft eingestellt haben, rufen Sie die createTextLine()
-Methode auf, um Textzeilen zu erstellen, die Instanzen der TextLine
-Klasse sind.
Verwandte API-Elemente
GraphicElement
GroupElement
TextBaseline
TextElement
TextJustifier
TextLine
TextRotation
TabStop
Eigenschaft | Definiert von | ||
---|---|---|---|
applyNonLinearFontScaling : Boolean
Gibt an, dass Sie das Bildschirmerscheinungsbild auf Kosten der WYSIWYG-Drucktreue verbessern möchten (WYSIWYG = What you see is what you get, engl. für Was Sie sehen, ist das, was Sie bekommen). | TextBlock | ||
baselineFontDescription : FontDescription
Die Schriftart, die verwendet wird, um die Grundlinie für alle im Block erstellten Zeilen festzulegen, unabhängig von ihrem Inhalt. | TextBlock | ||
baselineFontSize : Number
Die Schriftgröße wird verwendet, um die Grundlinien der im Block erstellten Zeilen zu berechnen. | TextBlock | ||
baselineZero : String
Gibt an, welche Grundlinie sich für Zeilen, die in diesem Block erstellt werden, bei y=0 befindet. | TextBlock | ||
bidiLevel : int
Gibt die bidirektionale Absatzeinbettungsebene des Textblocks an. | TextBlock | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
content : ContentElement
Enthält den Inhalt des Textblocks. | TextBlock | ||
firstInvalidLine : flash.text.engine:TextLine [schreibgeschützt]
Identifiziert die erste Zeile im Textblock, in der TextLine.validity nicht TextLineValidity.VALID entspricht. | TextBlock | ||
firstLine : flash.text.engine:TextLine [schreibgeschützt]
Die erste TextLine im TextBlock, falls vorhanden. | TextBlock | ||
lastLine : flash.text.engine:TextLine [schreibgeschützt]
Die letzte TextLine im TextBlock, falls vorhanden. | TextBlock | ||
lineRotation : String
Dreht die Textzeilen im Textblock als eine Einheit. | TextBlock | ||
tabStops : Vector.<flash.text.engine:TabStop>
Gibt die Tabstopps für den Text im Textblock in Form eines Vektors von TabStop-Objekten an. | TextBlock | ||
textJustifier : flash.text.engine:TextJustifier
Gibt den TextJustifier an, der bei der Zeilenerstellung verwendet werden soll. | TextBlock | ||
textLineCreationResult : String [schreibgeschützt]
Gibt das Ergebnis einer createTextLine()-Methode an. | TextBlock | ||
userData : *
Ermöglicht der Anwendung, beliebige Daten mit dem Textblock zu verknüpfen. | TextBlock |
Methode | Definiert von | ||
---|---|---|---|
TextBlock(content:ContentElement = null, tabStops:Vector.<flash.text.engine:TabStop> = null, textJustifier:flash.text.engine:TextJustifier = null, lineRotation:String = "rotate0", baselineZero:String = "roman", bidiLevel:int = 0, applyNonLinearFontScaling:Boolean = true, baselineFontDescription:FontDescription = null, baselineFontSize:Number = 12.0)
Erstellt ein TextBlock-Objekt.
| TextBlock | ||
createTextLine(previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Weist den Textblock an, eine Textzeile aus dem Inhalt zu erstellen, die beim durch den previousLine-Parameter angegebenen Punkt beginnt und am vom width-Parameter angegebenen Punkt umbrochen wird. | TextBlock | ||
Gibt den zugrundeliegenden Inhalt des TextBlock als XML-String aus. | TextBlock | ||
Sucht den Index der nächsten Atomgrenze ab dem angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. | TextBlock | ||
Sucht den Index der nächsten Wortgrenze ab dem angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. | TextBlock | ||
Sucht den Index der vorherigen Atomgrenze bis zum angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. | TextBlock | ||
Sucht den Index der vorherigen Wortgrenze bis zum angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. | TextBlock | ||
Gibt die TextLine zurück, die das vom charIndex-Parameter angegebene Zeichen enthält. | TextBlock | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
recreateTextLine(textLine:flash.text.engine:TextLine, previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Weist den Textblock an, eine vorhandene Textzeile zu verwenden, um eine Textzeile aus dem Inhalt zu erstellen, die beim durch den previousLine-Parameter angegebenen Punkt beginnt und am vom width-Parameter angegebenen Punkt umbrochen wird. | TextBlock | ||
Weist den Textblock an, alle temporären Daten, die mit dem Erstellen von Textzeilen verknüpft sind, freizugeben. | TextBlock | ||
Entfernt einen Bereich von Textzeilen aus der Liste der vom TextBlock verwalteten Zeilen. | TextBlock | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
applyNonLinearFontScaling | Eigenschaft |
applyNonLinearFontScaling:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt an, dass Sie das Bildschirmerscheinungsbild auf Kosten der WYSIWYG-Drucktreue verbessern möchten (WYSIWYG = What you see is what you get, engl. für Was Sie sehen, ist das, was Sie bekommen). Für Plattformen und Schriftarten, die die Subpixel-Glyphpositionierung während des Rendering nicht unterstützen, aber nicht-lineares Skalieren unterstützen, wird die Verwendung dieser Metriken auf Kosten der WYSIWYG-Drucktreue, besonders für kleine Schriften, aktiviert, wenn diese Eigenschaft auf den Wert true
eingestellt wird. Die nicht-lineare Schriftskalierung wird durch selektives Skalieren der Breite einzelner Glyphen erzielt, um unansehnliche Lücken, die durch Ausrichten an Pixeln entstehen, auszugleichen.
Auf Plattformen, die die Subpixel-Glyphpositionierung unterstützen, wird dieser Kennzeichner ignoriert.
Dieser Kennzeichner hat keine Auswirkungen auf das Rendering eingebetteter Schriftarten
Der Standardwert ist true
.
Implementierung
public function get applyNonLinearFontScaling():Boolean
public function set applyNonLinearFontScaling(value:Boolean):void
baselineFontDescription | Eigenschaft |
baselineFontDescription:FontDescription
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Die Schriftart, die verwendet wird, um die Grundlinie für alle im Block erstellten Zeilen festzulegen, unabhängig von ihrem Inhalt. Grundlinien sind von der Schriftart und der Schriftgröße abhängig.
Der Standardwert ist null
. Wenn die Grundlinienschriftart null
ist, wird die Grundlinienschriftgröße ignoriert und die Grundlinie für jede gegebene Zeile basiert auf der Schriftart und -größe des größten Texts in der Zeile. Wenn Sie sowohl baselineFontDescription
als auch baselineFontSize
, angeben, bestimmen sie die Grundlinien für alle Zeilen im Textblock, unabhängig von ihrem Inhalt. Diese Kombination ist meistens in der asiatischen Typografie hilfreich.
Implementierung
public function get baselineFontDescription():FontDescription
public function set baselineFontDescription(value:FontDescription):void
Verwandte API-Elemente
baselineFontSize | Eigenschaft |
baselineFontSize:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Die Schriftgröße wird verwendet, um die Grundlinien der im Block erstellten Zeilen zu berechnen. Grundlinien sind von der Schriftart und der Schriftgröße abhängig.
Der Standardwert ist 12
. Wenn die Grundlinienschriftart null
ist, wird die Grundlinienschriftgröße ignoriert und die Grundlinie für jede gegebene Zeile basiert auf der Schriftart und -größe des größten Texts in der Zeile.
Implementierung
public function get baselineFontSize():Number
public function set baselineFontSize(value:Number):void
Auslöser
ArgumentError — Die angegebene baselineFontSize ist kleiner als 0.
|
Verwandte API-Elemente
baselineZero | Eigenschaft |
baselineZero:String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt an, welche Grundlinie sich für Zeilen, die in diesem Block erstellt werden, bei y=0 befindet. Gültige Werte für diese Eigenschaft enthalten die Mitglieder der TextBaseline
-Klasse.
Der Standardwert ist TextBaseline.ROMAN
.
Wenn Sie Werte für diese Eigenschaft definieren möchten, verwenden Sie die folgenden Stringwerte:
Stringwert | Beschreibung |
---|---|
TextBaseline.ROMAN | Die Roman-Grundlinie der Zeilen befindet sich bei y=0. |
TextBaseline.ASCENT | Die Oberlängen-Grundlinie der Zeilen befindet sich bei y=0. |
TextBaseline.DESCENT | Die Unterlängen-Grundlinie der Zeilen befindet sich bei y=0. |
TextBaseline.IDEOGRAPHIC_TOP | Die obere ideografische Grundlinie der Zeilen befindet sich bei y=0. |
TextBaseline.IDEOGRAPHIC_CENTER | Die mittlere ideografische Grundlinie der Zeilen befindet sich bei y=0. |
TextBaseline.IDEOGRAPHIC_BOTTOM | Die untere ideografische Grundlinie der Zeilen befindet sich bei y=0. |
Implementierung
public function get baselineZero():String
public function set baselineZero(value:String):void
Auslöser
ArgumentError — Falls ein Wert verwendet wird, der kein Mitglied von TextBaseline ist.
|
Verwandte API-Elemente
bidiLevel | Eigenschaft |
bidiLevel:int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt die bidirektionale Absatzeinbettungsebene des Textblocks an. Im Allgemeinen sollten Sie 0 für LTR-Absätze (von links nach rechts; Englisch, Japanisch usw.) und 1 für RTL-Absätze (von rechts nach links; Arabisch, Hebräisch usw.) verwenden. Die Verwendung von anderen Werten als 0 oder 1 ist für Sonderfälle reserviert - siehe UAX#9, "Unicode Bidirectional Algorithm" (http://www.unicode.org/reports/tr9/).
Der Standardwert ist 0.
Wenn Sie die bidiLevel
-Eigenschaft ändern, ändert sich die Gültigkeit aller zuvor umbrochener Zeilen zu TextLineValidity.INVALID. Nachdem bidiLevel
geändert wurde, entspricht die firstInvalidLine
-Eigenschaft der firstLine
-Eigenschaft und Sie müssen alle Zeilen im TextBlock neu umbrechen.
Implementierung
public function get bidiLevel():int
public function set bidiLevel(value:int):void
Auslöser
ArgumentError — Bei der Einstellung auf einen Wert, der kleiner als 0 ist.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
bidiLevel
und dann mit einem ungeraden Wert fürbidiLevel
wiedergegeben.
package { import flash.display.Sprite; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; public class TextBlock_bidiLevelExample extends Sprite { public function TextBlock_bidiLevelExample():void { var fontSize:Number = 36; var format:ElementFormat = new ElementFormat(); format.fontDescription = new FontDescription("Adobe Hebrew"); format.fontSize = fontSize; var y:Number = 0; var leading:Number = fontSize * 0.2; var text:String = "abc" + String.fromCharCode(0x05D0, 0x05D1, 0x05D2); var textBlock:TextBlock = new TextBlock(); textBlock.content = new TextElement(text, format); // bidiLevel even textBlock.bidiLevel = 0; var textLine = textBlock.createTextLine(null, 400); y += leading + textLine.ascent; textLine.y = y; y += textLine.descent; addChild(textLine); // bidiLevel odd textBlock.content = new TextElement(text, format); textBlock.bidiLevel = 1; textLine = textBlock.createTextLine(null, 400); y += leading + textLine.ascent; textLine.y = y; addChild(textLine); } } }
content | Eigenschaft |
content:ContentElement
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Enthält den Inhalt des Textblocks. Da ContentElement eine Basisklasse ist, weisen Sie content
eine Instanz einer ContentElement-Unterklasse zu: TextElement, GraphicElement oder GroupElement. Ein TextElement enthält einen String, ein GraphicElement enthält ein DisplayObject und ein GroupElement enthält ein Vektor-Objekt, das ein oder mehrere TextElement-, GraphicElement- oder andere GroupElement-Objekte enthält. Verwenden Sie ein TextElement für einen Absatz mit homogenem Text, ein GraphicElement für eine Grafik und ein GroupElement für eine Kombination aus Text- und Grafikelemente oder mehreren Instanzen desselben Elements sowie anderen GroupElement-Objekten.
Der Standardwert ist null
.
Wenn Sie die content
-Eigenschaft ändern, ändert sich die Gültigkeit aller zuvor erstellten Zeilen zu TextLineValidity.INVALID
. Nachdem content
geändert wurde, entspricht die firstInvalidLine
-Eigenschaft der firstLine
-Eigenschaft und Sie müssen alle Zeilen im TextBlock neu umbrechen.
Implementierung
public function get content():ContentElement
public function set content(value:ContentElement):void
Auslöser
ArgumentError — Wenn dies auf einen Wert eingestellt ist, der keine bekannte Unterklasse von ContentElement ist.
| |
ArgumentError — Der angegebene value ist bereits Mitglied einer Gruppe.
|
Verwandte API-Elemente
firstInvalidLine | Eigenschaft |
firstInvalidLine:flash.text.engine:TextLine
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Identifiziert die erste Zeile im Textblock, in der TextLine.validity
nicht TextLineValidity.VALID
entspricht.
Der Standardwert ist null
.
Implementierung
public function get firstInvalidLine():flash.text.engine:TextLine
Verwandte API-Elemente
firstLine | Eigenschaft |
firstLine:flash.text.engine:TextLine
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Die erste TextLine im TextBlock, falls vorhanden.
Der Standardwert ist null
.
Implementierung
public function get firstLine():flash.text.engine:TextLine
Verwandte API-Elemente
lastLine | Eigenschaft |
lastLine:flash.text.engine:TextLine
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Die letzte TextLine im TextBlock, falls vorhanden.
Der Standardwert ist null
.
Implementierung
public function get lastLine():flash.text.engine:TextLine
Verwandte API-Elemente
lineRotation | Eigenschaft |
lineRotation:String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Dreht die Textzeilen im Textblock als eine Einheit. Rufen Sie die createTextLine()
-Methode auf, nachdem Sie lineRotation
eingestellt haben, damit dies wirksam wird. Der Standardwert ist TextRotation.ROTATE_0
.
Die endgültige Drehung einer Glyphe richtet sich nach den Werten für ElementFormat.textRotation
, ContentElement.textRotation
und TextBlock.lineRotation
.
TextBlock.lineRotation
wird normalerweise für asiatischen Text verwendet. Um einen Absatz mit senkrechtem japanischen Text zu erstellen, gehen Sie folgendermaßen vor:
- Setzen Sie die
TextBlock.lineRotation
-Eigenschaft aufTextRotation.ROTATE_90
. - Übernehmen Sie für die
ElementFormat.textRotation
-Eigenschaft des Inhalts die StandardeinstellungTextRotation.AUTO
.
Verwenden Sie die folgenden Konstanten, die in der TextRotation
-Klasse definiert sind, um den Wert für diese Eigenschaft einzustellen:
Stringwert | Beschreibung |
---|---|
TextRotation.ROTATE_0 | Zeilen werden nicht gedreht. |
TextRotation.ROTATE_90 | Zeilen werden um 90 Grad im Uhrzeigersinn gedreht. |
TextRotation.ROTATE_180 | Zeilen werden um 180 Grad gedreht. |
TextRotation.ROTATE_270 | Zeilen werden um 270 Grad im Uhrzeigersinn gedreht. |
TextRotation.AUTO | Nicht unterstützt. |
Implementierung
public function get lineRotation():String
public function set lineRotation(value:String):void
Auslöser
ArgumentError — Falls ein Wert verwendet wird, der kein Mitglied von TextRotation ist.
| |
ArgumentError — Falls der Wert auf TextRotation.AUTO gesetzt ist.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
lineRotation
-Eigenschaft wird auf TextRotation.ROTATE_90 gesetzt, um die Zeile senkrecht anzuzeigen.
package { import flash.display.Sprite; import flash.text.engine.FontDescription; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.TextRotation; import flash.text.engine.ElementFormat; public class TextBlock_lineRotationExample extends Sprite { public function TextBlock_lineRotationExample():void { var Japanese:String = String.fromCharCode( 0x5185, 0x95A3, 0x5E9C, 0x304C, 0x300C, 0x653F, 0x5E9C, 0x30A4, 0x30F3, 0x30BF, 0x30FC, 0x30CD, 0x30C3, 0x30C8, 0x30C6, 0x30EC, 0x30D3, 0x300D, 0x306E, 0x52D5, 0x753B, 0x914D, 0x4FE1, 0x5411, 0x3051, 0x306B, 0x30A2, 0x30C9, 0x30D3, 0x30B7, 0x30B9, 0x30C6, 0x30E0, 0x30BA, 0x793E, 0x306E ) + "FMS 2" + String.fromCharCode(0x3092, 0x63A1, 0x7528, 0x3059, 0x308B, 0x3068, 0x767a, 0x8868, 0x3057, 0x307e, 0x3057, 0x305F, 0x3002); var fontDescription:FontDescription = new FontDescription("MS Mincho"); var format:ElementFormat = new ElementFormat(); format.fontSize = 15; format.fontDescription = fontDescription; var textElement:TextElement = new TextElement(Japanese, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; textBlock.lineRotation = TextRotation.ROTATE_90; var linePosition:Number = this.stage.stageWidth - 120; var previousLine:TextLine = null; while (true) { var textLine:TextLine = textBlock.createTextLine( previousLine, 300); if (textLine == null) break; textLine.y = 30; textLine.x = linePosition; linePosition -= 24; addChild(textLine); previousLine = textLine; } } } }
tabStops | Eigenschaft |
tabStops:Vector.<flash.text.engine:TabStop>
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt die Tabstopps für den Text im Textblock in Form eines Vektors von TabStop
-Objekten an.
Der Standardwert ist null
, was bedeutet, dass keine Tabstopps angegeben wurden. Wenn keine Tabstopps angegeben wurden (oder der Einfügepunkt hinter dem letzten angegebenen Tabstopp liegt), erstellt die Laufzeitumgebung automatisch Halbzoll-Tabs.
Wenn die tabStops
-Eigenschaft eingestellt ist, fertigt der TextBlock eine Kopie des Vektors zur internen Verwendung an. Änderungen am ursprünglichen Vektor oder seinem Inhalt wirken sich nicht auf den TextBlock aus. Bei einer Abfrage der tabStops
-Eigenschaft wird eine Kopie des internen Vektors zurückgegeben. Auch hier gilt, dass sich Änderungen am zurückgegebenen Vektor oder seinem Inhalt nicht auf den TextBlock auswirken.
Implementierung
public function get tabStops():Vector.<flash.text.engine:TabStop>
public function set tabStops(value:Vector.<flash.text.engine:TabStop>):void
Auslöser
ArgumentError — Die angegebenen tabStops enthalten null Elemente.
| |
ArgumentError — Die angegebenen tabStops sind nicht nach zunehmender Position sortiert.
|
Verwandte API-Elemente
textJustifier | Eigenschaft |
textJustifier:flash.text.engine:TextJustifier
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt den TextJustifier an, der bei der Zeilenerstellung verwendet werden soll.
Der Standardwert ist ein konstruiertes TextJustifier-Standardobjekt.
Wenn die textJustifier
-Eigenschaft eingestellt ist, fertigt der TextBlock eine Kopie des Objekts zur internen Verwendung an. Änderungen am Originalobjekt wirken sich nicht auf den TextBlock aus. Bei einer Abfrage der textJustifier
-Eigenschaft wird eine Kopie des internen Objekts zurückgegeben. Auch hier gilt, dass sich Änderungen am zurückgegebenen Objekt nicht auf den TextBlock auswirken.
Implementierung
public function get textJustifier():flash.text.engine:TextJustifier
public function set textJustifier(value:flash.text.engine:TextJustifier):void
Auslöser
ArgumentError — Wenn dies auf einen Wert eingestellt ist, der keine bekannte Unterklasse von TextJustifier ist.
|
Verwandte API-Elemente
textLineCreationResult | Eigenschaft |
textLineCreationResult:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt das Ergebnis einer createTextLine()
-Methode an. Beim Ändern des Blockinhalts werden zuvor umbrochene Zeilen ungültig und diese Eigenschaft wird auf null
zurückgesetzt.
Der Standardwert ist null
.
Werte für diese Eigenschaft sind in TextLineCreationResult
enthalten.
Stringwert | Beschreibung |
---|---|
TextLineCreationResult.SUCCESS | Die Zeile wurde erfolgreich umbrochen. |
TextLineCreationResult.COMPLETE | Entweder wurde die neu erstellte Zeile genau an den folgenden Zeilen umbrochen, die von POSSIBLY_INVALID zu VALID übergegangen sind, oder es wurde keine Zeile erstellt, da der gesamte Text im Block bereits umbrochen wurde. |
TextLineCreationResult.INSUFFICIENT_WIDTH | Es wurde keine Zeile erstellt, da kein Text in die angegebene Breite eingepasst werden konnte. |
Implementierung
public function get textLineCreationResult():String
Verwandte API-Elemente
userData | Eigenschaft |
public var userData:*
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Ermöglicht der Anwendung, beliebige Daten mit dem Textblock zu verknüpfen. Bei den Daten kann es sich um Informationen zum Inhalt handeln (z. B. Änderungsdatum, Name des Verfassers) oder um zwischengespeicherte Daten, die bei der Verarbeitung benötigt werden.
TextBlock | () | Konstruktor |
public function TextBlock(content:ContentElement = null, tabStops:Vector.<flash.text.engine:TabStop> = null, textJustifier:flash.text.engine:TextJustifier = null, lineRotation:String = "rotate0", baselineZero:String = "roman", bidiLevel:int = 0, applyNonLinearFontScaling:Boolean = true, baselineFontDescription:FontDescription = null, baselineFontSize:Number = 12.0)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Erstellt ein TextBlock-Objekt.
Parametercontent:ContentElement (default = null ) — Der Inhalt des Textblocks.
| |
tabStops:Vector.<flash.text.engine:TabStop> (default = null ) — Die Tabstopps für den Text im Textblock.
| |
textJustifier:flash.text.engine:TextJustifier (default = null ) — Das TextJustifier-Objekt, das bei der Zeilenerstellung für diesen Block verwendet werden soll. Wenn kein Justifier angegeben wird, wird ein Standardjustifier basierend auf einem englischen Gebietsschema verwendet.
| |
lineRotation:String (default = "rotate0 ") — Die Drehung, die auf die Textzeilen angewendet wird, die als Einheiten aus dem Textblock generiert werden.
| |
baselineZero:String (default = "roman ") — Gibt an, welche Grundlinie sich bei y=0 für alle Zeilen im Block befindet.
| |
bidiLevel:int (default = 0 ) — Die standardmäßige bidirektionale Einbettungsstufe des Texts im Textblock.
| |
applyNonLinearFontScaling:Boolean (default = true ) — Gibt an, dass Sie das Bildschirmerscheinungsbild auf Kosten der WYSIWYG-Drucktreue verbessern möchten.
| |
baselineFontDescription:FontDescription (default = null ) — Gibt eine Schriftartbeschreibung an, aus der die Zeilengrundlinien für alle Zeilen im Block abgeleitet wird.
| |
baselineFontSize:Number (default = 12.0 ) — Gibt die Größe an, die mit baselineFontDescription verwendet wird. Dieser Parameter wird ignoriert, wenn baselineFontDescription den Wert null hat.
|
Auslöser
ArgumentError — Der angegebene content ist keine bekannte Unterklasse von ContentElement .
| |
ArgumentError — Der angegebene content ist bereits Mitglied einer Gruppe.
| |
ArgumentError — Die angegebene lineRotation ist kein Mitglied von TextRotation .
| |
ArgumentError — Die angegebene baselineZero ist kein Mitglied von TextBaseline .
| |
ArgumentError — Das angegebene bidiLevel ist kleiner als 0.
| |
ArgumentError — Die angegebenen tabStops enthalten null Elemente.
| |
ArgumentError — Die angegebenen tabStops sind nicht nach zunehmender Position sortiert.
| |
ArgumentError — Die angegebene baselineFontSize ist kleiner als 0.
|
Verwandte API-Elemente
createTextLine | () | Methode |
public function createTextLine(previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Weist den Textblock an, eine Textzeile aus dem Inhalt zu erstellen, die beim durch den previousLine
-Parameter angegebenen Punkt beginnt und am vom width
-Parameter angegebenen Punkt umbrochen wird. Die Textzeile ist ein TextLine-Objekt, das Sie der Anzeigeliste hinzufügen können.
Zeilenumbrüche in einem Bereich eines Textblocks, auf den bereits Zeilenumbrüche angewendet wurden, kann die Gültigkeit der Zeilen in und hinter dem Bereich mit den Zeilenumbrüchen ändern. Der Status der Zeilen kann sich von VALID zu INVALID oder POSSIBLY_INVALID ändern. Wenn eine neu umbrochene Zeile genau an einer zuvor umbrochenen Zeile ausgerichtet wird, die den Status POSSIBLY_INVALID hat, ändern sich diese zuvor umbrochene und alle folgenden Zeilen mit dem Status POSSIBLY_INVALID wieder zurück zum Status VALID. Die Gültigkeit von Zeilen mit Werten, die nicht TextLineValidity
angehören, ändert sich nicht in VALID, kann sich allerdings in INVALID ändern. Überprüfen Sie die firstInvalidLine
-Eigenschaft, nachdem der Textblock geändert wurde, um zu sehen, wo mit dem Neu-Umbruch von Textzeilen zu beginnen oder fortzufahren ist.
Sie können künstliche Wortumbrüche erstellen, indem Sie das ZWSP-Zeichen (Unicode Zero Width Space) in den Text einfügen. Dies kann hilfreich sein für Sprachen wie zum Beispiel Thai, für die ein Wörterbuch für richtige Zeilenumbrüche erforderlich ist. Die Flash-Laufzeitumgebung enthält kein derartiges Wörterbuch.
Sofern nach dem Erstellen aller gewünschten Zeilen nicht damit zu rechnen ist, dass die Zeilen, zum Beispiel wegen der Größenänderung des Containers, wiederholt neu umbrochen werden müssen, sollte der Benutzer zum Verringern der Speicherlast die releaseLineCreationData()
-Methode aufrufen, damit der Textblock die temporären Daten, die mit Zeilenumbrüchen verknüpft sind, löschen kann.
Parameter
previousLine:flash.text.engine:TextLine (default = null ) — Gibt die vorherige umbrochene Zeile an, nach der der Zeilenumbruch beginnen soll. Kann null sein, wenn die erste Zeile umbrochen wird.
| |
width:Number (default = 1000000 ) — Legt die gewünschte Breite der Zeile in Pixeln fest. Die tatsächliche Breite kann kleiner sein.
| |
lineOffset:Number (default = 0.0 ) — Ein optionaler Parameter, der die Differenz zwischen dem Anfang der Zeile und dem Anfang des Tabstopps in Pixeln angibt. Dies kann verwendet werden, wenn die Zeilen nicht ausgerichtet sind, für die Tabstopps ist dies jedoch empfehlenswert. Der Standardwert für diesen Parameter 0,0 .
| |
fitSomething:Boolean (default = false ) — Ein optionaler Parameter, der Flash Player anweist, mindestens ein Zeichen in die Textzeile einzupassen, unabhängig von der angegebenen Breite (auch wenn die Breite null oder negativ ist, was andernfalls zu einem Ausnahmefehler führen würde).
|
flash.text.engine:TextLine — Eine Textzeile oder null , wenn der Textblock leer ist oder die angegebene Breite (width) kleiner als die Breite des nächsten Elements ist. Um zwischen diesen Fällen zu unterscheiden, überprüfen Sie die textLineCreationResult -Eigenschaft des Textblocks.
|
Auslöser
ArgumentError — Wenn die von previousLine angegebene TextLine nicht gültig ist.
| |
ArgumentError — Wenn die von previousLine angegebene TextLine zu einem anderen TextBlock gehört-
| |
ArgumentError — Wenn width kleiner als null ist, sofern fitSomething nicht „true“ ist.
| |
ArgumentError — Wenn width größer als TextLine.MAX_LINE_WIDTH ist.
| |
IllegalOperationError — Wenn mindestens ein Element im Inhalt des Textblocks ein null ElementFormat hat.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
createTextLine()
()-Methode aufgerufen, um Textzeilen in einem Textblock zu erstellen. Dies wird durch Ausführen der folgenden Aufgaben erreicht:
- Erstellen eines TextElement aus einem String und Zuweisen der Schriftgröße 20
- Erstellen eines TextBlock und Zuweisen des TextElement
- Aufrufen von
createTextLine()
, um aus dem Textblock 300 Pixel breite Zeilen zu erstellen - Platzieren jeder Zeile auf der Bühne (
addChild()
)und Festlegen ihrer Positionen (x
undy
)
package { import flash.display.Sprite; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.TextLine; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; public class TextBlock_createTextLineExample extends Sprite { public function TextBlock_createTextLineExample():void { var str:String = "I am a TextElement, created from a String and assigned " + "to the content property of a TextBlock. The createTextLine() method " + "then created these lines, 300 pixels wide, for display." ; var fontDescription:FontDescription = new FontDescription("Arial"); var format:ElementFormat = new ElementFormat(fontDescription); format.fontSize = 16; var textElement:TextElement = new TextElement(str, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; createLines(textBlock); } private function createLines(textBlock:TextBlock):void { var lineWidth:Number = 300; var xPos:Number = 15.0; var yPos:Number = 20.0; var textLine:TextLine = textBlock.createTextLine (null, lineWidth); while (textLine) { textLine.x = xPos; textLine.y = yPos; yPos += textLine.height + 2; addChild (textLine); textLine = textBlock.createTextLine (textLine, lineWidth); } } } }
dump | () | Methode |
public function dump():String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Gibt den zugrundeliegenden Inhalt des TextBlock als XML-String aus. Dies kann beim automatischen Testen hilfreich sein. Informationen zu Text, Formatierung und Layout sind enthalten.
Nachstehend wird die Ausgabe beschrieben:
>block< [0-N LINE] >/block<
Eine Beschreibung der Ausgabe jeder Zeile finden Sie im Abschnitt zur TextLine.dump()-Methode.
Hinweis: Inhalt und Format der Ausgabe können in der Zukunft geändert werden. Adobe garantiert nicht die Abwärtskompatibilität dieser Methode.
RückgabewerteString |
Verwandte API-Elemente
findNextAtomBoundary | () | Methode |
public function findNextAtomBoundary(afterCharIndex:int):int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Sucht den Index der nächsten Atomgrenze ab dem angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. Die Zeichen zwischen Atomgrenzen verbinden sich, um ein Atom in einer TextLine
zu bilden, zum Beispiel ein „e“ mit einem dazugehörigen Akut-Zeichen.
Parameter
afterCharIndex:int — Gibt den Index des Zeichens an, ab dem die nächste Atomgrenze gesucht wird.
|
int — Der Index der nächsten Atomgrenze ab dem angegebenen Zeichenindex.
|
Auslöser
RangeError — Der angegebene index befindet sich nicht im gültigen Bereich.
| |
IllegalOperationError — Die TextLine, zu der das indizierte Zeichen gehört, ist nicht gültig.
|
Verwandte API-Elemente
findNextWordBoundary | () | Methode |
public function findNextWordBoundary(afterCharIndex:int):int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Sucht den Index der nächsten Wortgrenze ab dem angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. Wortgrenzen werden aufgrund der Unicode-Eigenschaften der Zeichen bestimmt.
Parameter
afterCharIndex:int — Gibt den Index des Zeichens an, ab dem die nächste Wortgrenze gesucht wird.
|
int — Der Index der nächsten Wortgrenze ab dem angegebenen Zeichenindex.
|
Auslöser
RangeError — Der angegebene index befindet sich nicht im gültigen Bereich.
| |
IllegalOperationError — Die TextLine, zu der das indizierte Zeichen gehört, ist nicht gültig.
|
findPreviousAtomBoundary | () | Methode |
public function findPreviousAtomBoundary(beforeCharIndex:int):int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Sucht den Index der vorherigen Atomgrenze bis zum angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. Die Zeichen zwischen Atomgrenzen verbinden sich, um ein Atom in einer TextLine
zu bilden, zum Beispiel ein „e“ mit einem dazugehörigen Akut-Zeichen.
Parameter
beforeCharIndex:int — Gibt den Index des Zeichens an, ab dem die vorherige Atomgrenze gesucht wird.
|
int — Der Index der vorherigen Atomgrenze bis zum angegebenen Zeichenindex.
|
Auslöser
RangeError — Der angegebene index befindet sich nicht im gültigen Bereich.
| |
IllegalOperationError — Die TextLine, zu der das indizierte Zeichen gehört, ist nicht gültig.
|
Verwandte API-Elemente
findPreviousWordBoundary | () | Methode |
public function findPreviousWordBoundary(beforeCharIndex:int):int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Sucht den Index der vorherigen Wortgrenze bis zum angegebenen Zeichenindex, wobei das Zeichen beim angegebenen Index nicht eingeschlossen wird. Wortgrenzen werden aufgrund der Unicode-Eigenschaften der Zeichen bestimmt.
Parameter
beforeCharIndex:int — Gibt den Index des Zeichens an, ab dem die vorherige Wortgrenze gesucht wird.
|
int — Der Index der vorherigen Wortgrenze bis zum angegebenen Zeichenindex.
|
Auslöser
RangeError — Der angegebene index befindet sich nicht im gültigen Bereich.
| |
IllegalOperationError — Die TextLine, zu der das indizierte Zeichen gehört, ist nicht gültig.
|
getTextLineAtCharIndex | () | Methode |
public function getTextLineAtCharIndex(charIndex:int):flash.text.engine:TextLine
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt die TextLine zurück, die das vom charIndex
-Parameter angegebene Zeichen enthält.
Parameter
charIndex:int — Der Indexwert für das Zeichen mit Basis null (d. h., das erste Zeichen ist 0, das zweite Zeichen 1 usw.).
|
flash.text.engine:TextLine — Die TextLine, die das Zeichen bei charIndex enthält.
|
Auslöser
RangeError — Der angegebene Zeichenindex befindet sich nicht im gültigen Bereich.
|
recreateTextLine | () | Methode |
public function recreateTextLine(textLine:flash.text.engine:TextLine, previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Weist den Textblock an, eine vorhandene Textzeile zu verwenden, um eine Textzeile aus dem Inhalt zu erstellen, die beim durch den previousLine
-Parameter angegebenen Punkt beginnt und am vom width
-Parameter angegebenen Punkt umbrochen wird. Die Textzeile ist ein TextLine-Objekt, das Sie der Anzeigeliste hinzufügen können. Beim Wiederverwenden einer vorhandenen TextLine wird die Leistung verbessert, da weniger Objekte erstellt werden müssen.
Die neu erstellte textLine
wird ggf. vom Textblock, in dem sie sich befindet, gelöst. Außerdem werden alle Eigenschaften, einschließlich vererbte Eigenschaften von DisplayObjectContainer
, InteractiveObject
und DisplayObject
, auf ihre Standardwerte zurückgesetzt. Zum Schluss werden alle untergeordneten Elemente der Zeile, einschließlich Grafikelemente und andere Verzierungen, sowie alle Ereignis-Listener für die Zeile entfernt. Um die Leistung zu verbessern, wird als einzige Ausnahme von diesem vollständigen Zurücksetzen die Zeile selbst nicht von ihrem übergeordneten Element entfernt.
Zeilenumbrüche in einem Bereich eines Textblocks, auf den bereits Zeilenumbrüche angewendet wurden, kann die Gültigkeit der Zeilen in und hinter dem Bereich mit den Zeilenumbrüchen ändern. Der Status der Zeilen kann sich von VALID zu INVALID oder POSSIBLY_INVALID ändern. Wenn eine neu umbrochene Zeile genau an einer zuvor umbrochenen Zeile ausgerichtet wird, die den Status POSSIBLY_INVALID hat, ändern sich diese zuvor umbrochene und alle folgenden Zeilen mit dem Status POSSIBLY_INVALID wieder zurück zum Status VALID. Die Gültigkeit von Zeilen mit Werten, die nicht TextLineValidity
angehören, ändert sich nicht in VALID, kann sich allerdings in INVALID ändern. Überprüfen Sie die firstInvalidLine
-Eigenschaft, nachdem der Textblock geändert wurde, um zu sehen, wo mit dem Neu-Umbruch von Textzeilen zu beginnen oder fortzufahren ist.
Sie können künstliche Wortumbrüche erstellen, indem Sie das ZWSP-Zeichen (Unicode Zero Width Space) in den Text einfügen. Dies kann hilfreich sein für Sprachen wie zum Beispiel Thai, für die ein Wörterbuch für richtige Zeilenumbrüche erforderlich ist. Die Flash-Laufzeitumgebung enthält kein derartiges Wörterbuch.
Sofern nach dem Erstellen aller gewünschten Zeilen nicht damit zu rechnen ist, dass die Zeilen, zum Beispiel wegen der Größenänderung des Containers, wiederholt neu umbrochen werden müssen, sollte der Benutzer zum Verringern der Speicherlast die releaseLineCreationData()
-Methode aufrufen, damit der Textblock die temporären Daten, die mit Zeilenumbrüchen verknüpft sind, löschen kann.
Parameter
textLine:flash.text.engine:TextLine — Gibt eine zuvor erstellte TextLine an, die wiederverwendet werden kann.
| |
previousLine:flash.text.engine:TextLine (default = null ) — Gibt die vorherige umbrochene Zeile an, nach der der Zeilenumbruch beginnen soll. Kann null sein, wenn die erste Zeile umbrochen wird.
| |
width:Number (default = 1000000 ) — Legt die gewünschte Breite der Zeile in Pixeln fest. Die tatsächliche Breite kann kleiner sein.
| |
lineOffset:Number (default = 0.0 ) — Ein optionaler Parameter, der die Differenz zwischen dem Anfang der Zeile und dem Anfang des Tabstopps in Pixeln angibt. Dies kann verwendet werden, wenn die Zeilen nicht ausgerichtet sind, für die Tabstopps ist dies jedoch empfehlenswert. Der Standardwert für diesen Parameter 0,0 .
| |
fitSomething:Boolean (default = false ) — Ein optionaler Parameter, der Flash Player anweist, mindestens ein Zeichen in die Textzeile einzupassen, unabhängig von der angegebenen Breite (auch wenn die Breite null oder negativ ist, was andernfalls zu einem Ausnahmefehler führen würde).
|
flash.text.engine:TextLine — Eine Textzeile oder null , wenn der Textblock leer ist oder die angegebene Breite (width) kleiner als die Breite des nächsten Elements ist. Um zwischen diesen Fällen zu unterscheiden, überprüfen Sie die textLineCreationResult -Eigenschaft des Textblocks.
|
Auslöser
ArgumentError — Wenn textLine den Wert null hat.
| |
ArgumentError — Wenn die von previousLine angegebene TextLine nicht gültig ist.
| |
ArgumentError — Wenn die von previousLine angegebene TextLine zu einem anderen TextBlock gehört-
| |
ArgumentError — Wenn die von previousLine angegebene TextLine auch von textLine angegeben wird.
| |
ArgumentError — Wenn width kleiner als null ist, sofern fitSomething nicht „true“ ist.
| |
ArgumentError — Wenn width größer als TextLine.MAX_LINE_WIDTH ist.
| |
IllegalOperationError — Wenn mindestens ein Element im Inhalt des Textblocks ein null ElementFormat hat.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
textLine
wiederverwendet:
var elementFormat:ElementFormat = new ElementFormat(); elementFormat.fontDescription = new FontDescription("Arial"); elementFormat.fontSize = 48; var textElement:TextElement = new TextElement("Text you'll never see", elementFormat) var textBlock:TextBlock = new TextBlock(textElement); var textLine:TextLine = textBlock.createTextLine(); textLine.x = 50; textLine.y = 50; addChild(textLine); // Reuse the element format to preserve the text formatting var elementTwo:TextElement = new TextElement("Text you see", elementFormat); textBlock.content = elementTwo; textBlock.recreateTextLine(textLine); // Set the position (and any other display object properties like alpha, children, etc.) // otherwise, they're all set to default properties. textLine.x = 50; textLine.y = 50;
releaseLineCreationData | () | Methode |
public function releaseLineCreationData():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Weist den Textblock an, alle temporären Daten, die mit dem Erstellen von Textzeilen verknüpft sind, freizugeben. Um den von einer Anwendung belegten Arbeitsspeicher zu verringern, sollten Sie die releaseLineCreationData()
-Methode aufrufen, wenn Sie mit dem Erstellen von Textzeilen in einem Textblock fertig sind. Um die Leistung beim neuen Umbrechen der Zeilen zu verbessern (zum Beispiel, wenn die Containergröße geändert wird), sollte jedoch nicht die releaseLineCreationData()
-Methode aufgerufen werden. Die Anwendung ist dafür zuständig, Arbeitsspeicherlast und Leistung ins Gleichgewicht zu bringen.
Die empfohlene Vorgehensweise für Text, der wahrscheinlich nicht geändert wird, ist folgende: initialisieren Sie einen Textblock, rufen Sie die createTextLine()
-Methode so oft wie möglich auf, um die gewünschte Ausgabe zu erzielen, und rufen Sie dann die releaseLineCreationData()
-Methode auf.
Verwandte API-Elemente
releaseLines | () | Methode |
public function releaseLines(firstLine:flash.text.engine:TextLine, lastLine:flash.text.engine:TextLine):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Entfernt einen Bereich von Textzeilen aus der Liste der vom TextBlock verwalteten Zeilen. Auf diese Weise können die Zeilen aus dem Speicher entfernt werden (Garbage-Kollektor), wenn keine weiteren Verweise darauf vorhanden sind.
Setzt die textBlock
-, nextLine
- und previousLine
-Mitglieder der entfernten Zeilen auf null
. Setzt die validity
der entfernten Zeilen und aller anderen Zeilen, die auf die entfernten Zeilen im TextBlock folgen, auf TextLineValidity.INVALID
.
Parameter
firstLine:flash.text.engine:TextLine — Gibt die erste zu entfernende Zeile an.
| |
lastLine:flash.text.engine:TextLine — Gibt die letzte zu entfernende Zeile an.
|
Auslöser
ArgumentError — Wenn die von firstLine oder lastLine angegebene TextLine sich nicht in der Liste der vom Textbloch verwalteten Textzeilen befindet.
|
Verwandte API-Elemente
package { import fl.controls.Button; import flash.text.engine.TextBlock; import flash.text.engine.TextLine; import flash.text.engine.TextElement; import flash.text.engine.ElementFormat; import flash.text.engine.TextRotation; import flash.text.engine.TextBaseline; import flash.text.engine.LineJustification; import flash.text.engine.FontDescription; import flash.text.engine.EastAsianJustifier; import flash.display.Loader; import flash.display.Sprite; import flash.display.Stage; import flash.events.MouseEvent; import flash.system.Capabilities; public class TextBlockExample extends Sprite { var vertical:Boolean; var container:Sprite; var textBlocks:Vector.<TextBlock>; var loader:Loader = new Loader(); var directionButton:Button = new Button(); public function TextBlockExample():void { addChild(directionButton); directionButton.width = 30; directionButton.move(50, 350); directionButton.addEventListener(MouseEvent.CLICK, clickHandler); createContent(); createLines(); } private function createEmptyBlock():TextBlock { var textBlock:TextBlock = new TextBlock(); textBlock.baselineZero = TextBaseline.IDEOGRAPHIC_CENTER; textBlock.textJustifier = new EastAsianJustifier("ja", LineJustification.ALL_BUT_LAST); textBlock.lineRotation = vertical? TextRotation.ROTATE_90: TextRotation.ROTATE_0; return textBlock; } private function paragraph1(format:ElementFormat):TextBlock { var textBlock:TextBlock = createEmptyBlock(); textBlock.content = new TextElement( String.fromCharCode( 0x5185, 0x95A3, 0x5E9C, 0x304C, 0x300C, 0x653F, 0x5E9C, 0x30A4, 0x30F3, 0x30BF, 0x30FC, 0x30CD, 0x30C3, 0x30C8, 0x30C6, 0x30EC, 0x30D3, 0x300D, 0x306E, 0x52D5, 0x753B, 0x914D, 0x4FE1, 0x5411, 0x3051, 0x306B, 0x30A2, 0x30C9, 0x30D3, 0x30B7, 0x30B9, 0x30C6, 0x30E0, 0x30BA, 0x793E, 0x306E ) + "FMS 2" + String.fromCharCode(0x3092, 0x63A1, 0x7528, 0x3059, 0x308B, 0x3068, 0x767a, 0x8868, 0x3057, 0x307e, 0x3057, 0x305F, 0x3002), format); return textBlock; } private function paragraph2(format:ElementFormat):TextBlock { var textBlock:TextBlock = createEmptyBlock(); textBlock.content = new TextElement( String.fromCharCode( 0x30AF, 0x30ED, 0x30B9, 0x30D7, 0x30E9, 0x30C3, 0x30C8, 0x30D5, 0x30A9, 0x30FC, 0x30E0, 0x4E0A, 0x3067, 0x518D, 0x751F, 0x53EF, 0x80FD, 0x306A ) + "Flash Video" + String.fromCharCode( 0x3092, 0x914D, 0x4FE1, 0x3001, 0x653F, 0x5E9C, 0x6700, 0x65B0, 0x60C5, 0x5831, 0x3092, 0x3088, 0x308A, 0x591A, 0x304F, 0x306E, 0x56FD, 0x6C11, 0x306B, 0x9AD8, 0x54C1, 0x8CEA, 0x306A, 0x753B, 0x50CF, 0x3067, 0x7C21, 0x5358, 0x304B, 0x3064, 0x30EA, 0x30A2, 0x30EB, 0x30BF, 0x30A4, 0x30E0, 0x306B, 0x63D0, 0x4F9B, 0x3059, 0x308B, 0x3053, 0x3068, 0x304C, 0x53EF, 0x80FD, 0x306B, 0x306A, 0x308A, 0x307e, 0x3057, 0x305F, 0x3002), format); return textBlock; } private function paragraph3(format:ElementFormat):TextBlock { var textBlock:TextBlock = createEmptyBlock(); textBlock.content = new TextElement( String.fromCharCode(0x3010) + "2007" + String.fromCharCode(0x5E74) + "2" + String.fromCharCode(0x6708) + "21" + String.fromCharCode(0x65E5, 0x3011), format); return textBlock; } private function createContent():void { var font:FontDescription = new FontDescription(); if (Capabilities.os.search("Mac OS") > -1) font.fontName = String.fromCharCode(0x5C0F, 0x585A, 0x660E, 0x671D) + " Pro R"; // "Kozuka Mincho Pro R" koFont.fontName = "Adobe " + String.fromCharCode(0xBA85, 0xC870) + " Std M"; // "Adobe Myungjo Std M" else font.fontName = "Kozuka Mincho Pro R"; var format:ElementFormat = new ElementFormat(); format.fontDescription = font; format.fontSize = 12; format.locale = "ja"; format.color = 0x000000; if (!vertical) format.textRotation = TextRotation.ROTATE_0; textBlocks = new Vector.<TextBlock>(); textBlocks.push( paragraph1(format), paragraph2(format), paragraph3(format)//, ); } private function createLines():void { if (container != null) { removeChild(container); } container = new Sprite(); container.y = 45; container.x = 40; addChild(container); var linePosition:Number = vertical? this.stage.stageWidth - 120: 12; for (var i:uint = 0; i < textBlocks.length; i++) { var textBlock:TextBlock = textBlocks[i]; var previousLine:TextLine = null; while (true) { var textLine:TextLine = textBlock.createTextLine( previousLine, 300); if (textLine == null) break; if (vertical) { textLine.x = linePosition; linePosition -= 24; directionButton.label = " -- "; } else { textLine.y = linePosition+50; linePosition += 24; directionButton.label = " | "; } container.addChild(textLine); previousLine = textLine; } if (vertical) linePosition -= 16; else linePosition += 16; } } private function clickHandler(event:MouseEvent):void { vertical = !vertical; createContent(); createLines(); } } }
Tue Jun 12 2018, 10:04 AM Z