Paket | flash.text.engine |
Klass | public final class TextBlock |
Arv | TextBlock Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
TextBlock-klassen är bara avsedd att innehålla ett enda stycke därför att BiDi- och radbrytningsalgoritmerna i Unicode används på ett stycke i taget. För program som skapar flera textstycken bör programmets kod eller textanalys användas för att dela upp texten i stycken och skapa ett TextBlock per stycke.
TextBlock-objektet sparar innehållet i content
-egenskapen, som är en instans av klassen ContentElement. Eftersom du inte kan skapa en instans av klassen ContentElement anger du att content
ska vara en instans av någon av dess underklasser: TextElement, GraphicElement eller GroupElement. Använd TextElement för rent textinnehåll, GraphicElement för bild- eller grafikinnehåll och GroupElement om innehållet består av en kombination av TextElement, GraphicElement och andra GroupElement-objekt. I klassen ContentElement och dess underklasser finns mer information om hantering av formaterade textkörningar, inbäddade delkörningar och grafikelement.
När du har skapat TextBlock-instansen och ställt in content
-egenskapen anropar du metoden createTextLine()
för att skapa textrader, det vill säga instanser av klassen TextLine
.
Relaterade API-element
GraphicElement
GroupElement
TextBaseline
TextElement
TextJustifier
TextLine
TextRotation
TabStop
Egenskap | Definieras med | ||
---|---|---|---|
applyNonLinearFontScaling : Boolean
Anger att du vill förbättra skärmutseendet på bekostnad av WYSIWYG-utskriftsåtergivning. | TextBlock | ||
baselineFontDescription : FontDescription
Teckensnittet som används för att bestämma baslinjen för alla rader som är brutna från blocket, oberoende av deras innehåll. | TextBlock | ||
baselineFontSize : Number
Teckensnittet som används för att beräkna baslinjerna för rader som är skapade från blocket. | TextBlock | ||
baselineZero : String
Anger vilken baslinje som ska vara y=0 för rader som är skapade från detta block. | TextBlock | ||
bidiLevel : int
Anger styckeinbäddningsnivån för bidi-text i textblocket. | TextBlock | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
content : ContentElement
Innehåller textblockets innehåll. | TextBlock | ||
firstInvalidLine : flash.text.engine:TextLine [skrivskyddad]
Identifierar den första raden i textblocket där TextLine.validity inte är lika med TextLineValidity.VALID. | TextBlock | ||
firstLine : flash.text.engine:TextLine [skrivskyddad]
Det första TextLine i TextBlock, om något. | TextBlock | ||
lastLine : flash.text.engine:TextLine [skrivskyddad]
Det sista TextLine i TextBlock, om något. | TextBlock | ||
lineRotation : String
Roterar textraderna i textblocket som en enhet. | TextBlock | ||
tabStops : Vector.<flash.text.engine:TabStop>
Anger tabbstoppen för texten i textblocket i form av en vektor med TabStop-objekt. | TextBlock | ||
textJustifier : flash.text.engine:TextJustifier
Anger den TextJustifier som ska användas när rader skapas. | TextBlock | ||
textLineCreationResult : String [skrivskyddad]
Anger resultatet av en createTextLine()-åtgärd. | TextBlock | ||
userData : *
Medger att programmet kan koppla godtyckliga data till textblocket. | TextBlock |
Metod | Definieras med | ||
---|---|---|---|
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)
Skapar ett TextBlock-objekt
| TextBlock | ||
createTextLine(previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Instruerar textblocket att skapa en textrad från innehållet med början vid den punkt som anges av previousLine-parametern och brytningen vid punkten som anges av width-parametern. | TextBlock | ||
Dumpar det underliggande innehållet i TextBlock som en XML-sträng. | TextBlock | ||
Hittar indexet för nästa atomgräns från det angivna teckenindexet, exklusive tecknet vid det angivna indexet. | TextBlock | ||
Hittar indexet för nästa ordgräns från det angivna teckenindexet, exklusive tecknet vid det angivna indexet. | TextBlock | ||
Hittar indexet för föregående atomgräns till det angivna teckenindexet, exklusive tecknet vid det angivna indexet. | TextBlock | ||
Hittar indexet för föregående ordgräns till det angivna teckenindexet, exklusive tecknet vid det angivna indexet. | TextBlock | ||
Returnerar TextLine som innehåller det tecken som anges av parametern charIndex. | TextBlock | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | 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
Instruerar textblocket att återanvända en befintlig textrad för att skapa en textrad från innehållet, med början vid den punkt som anges av previousLine-parametern och med radbrytningen vid den punkt som anges av width-parametern. | TextBlock | ||
Instruerar textblocket att släppa alla tillfälliga data som är kopplade till att skapa textrader. | TextBlock | ||
Tar bort ett textradsintervall från radlistan som underhålls av TextBlock. | TextBlock | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object |
applyNonLinearFontScaling | egenskap |
applyNonLinearFontScaling:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anger att du vill förbättra skärmutseendet på bekostnad av WYSIWYG-utskriftsåtergivning. För plattformar och teckensnitt som inte har stöd för placering av delpixelsglyfer vid teckensnittsåtergivning på enheten, men som har stöd för icke-linjär skalning, kan du genom att ange den här egenskapen till true
göra det möjligt att använda sådana mått på bekostnad av WYSIWYG-utskriftsåtergivning, i synnerhet för små punktstorlekar. Icke-linjär skalning fungerar så att du selektivt skalar bredden på enskilda glyfer så att du döljer fula luckor som orsakats av pixelfästning.
På plattformar där det finns stöd för placering av delpixelsglyfer ignoreras den här flaggan.
Den här flaggan har ingen effekt på återgivningen av inbäddade teckensnitt
Standardvärdet är true
.
Implementering
public function get applyNonLinearFontScaling():Boolean
public function set applyNonLinearFontScaling(value:Boolean):void
baselineFontDescription | egenskap |
baselineFontDescription:FontDescription
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Teckensnittet som används för att bestämma baslinjen för alla rader som är brutna från blocket, oberoende av deras innehåll. Baslinjer är beroende av teckensnitt och teckenstorlek.
Standardvärdet är null
. När baslinjeteckensnittet är null
ignoreras dess storlek, och baslinjen för alla rader baseras på teckensnittet och storleken på radens största text. När du anger både baselineFontDescription
och baselineFontSize
avgör de baslinjerna för alla rader i textblocket, oberoende av deras innehåll. Den här kombinationen är användbar i t.ex. asiatisk typografi.
Implementering
public function get baselineFontDescription():FontDescription
public function set baselineFontDescription(value:FontDescription):void
Relaterade API-element
baselineFontSize | egenskap |
baselineFontSize:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Teckensnittet som används för att beräkna baslinjerna för rader som är skapade från blocket. Baslinjer är beroende av teckensnitt och teckenstorlek.
Standardvärdet är 12
. När baslinjeteckensnittet är null
ignoreras dess storlek, och baslinjen för alla rader baseras på teckensnittet och storleken på radens största text.
Implementering
public function get baselineFontSize():Number
public function set baselineFontSize(value:Number):void
Utlöser
ArgumentError — Angiven baselineFontSize är mindre än 0.
|
Relaterade API-element
baselineZero | egenskap |
baselineZero:String
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anger vilken baslinje som ska vara y=0 för rader som är skapade från detta block. Giltiga värden för denna egenskap kan hittas i medlemmarna i klassen TextBaseline
.
Standardvärdet är TextBaseline.ROMAN
.
Använd följande strängvärden när du ska ange värden för den här egenskapen:
Strängvärde | Beskrivning |
---|---|
TextBaseline.ROMAN | Radernas latinska baslinje är på y=0. |
TextBaseline.ASCENT | Radernas stigande baslinje är på y=0. |
TextBaseline.DESCENT | Radernas sjunkande baslinje är på y=0. |
TextBaseline.IDEOGRAPHIC_TOP | Radernas ideografiska övre baslinje är på y=0. |
TextBaseline.IDEOGRAPHIC_CENTER | Radernas ideografiska centrala baslinje är på y=0. |
TextBaseline.IDEOGRAPHIC_BOTTOM | Radernas ideografiska nedre baslinje är på y=0. |
Implementering
public function get baselineZero():String
public function set baselineZero(value:String):void
Utlöser
ArgumentError — Om den anges till ett värde som inte är medlem av TextBaseline .
|
Relaterade API-element
bidiLevel | egenskap |
bidiLevel:int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anger styckeinbäddningsnivån för bidi-text i textblocket. I allmänhet bör du använda 0 för stycken med text som löper från vänster till höger (t.ex. engelska, japanska) och 1 för stycken med text som löper från höger till vänster (t.ex. arabiska, hebreiska). Användning av andra värden än 0 eller 1 är reserverad för specialfall. Läs mer i UAX#9, "Unicode Bidirectional Algorithm" (http://www.unicode.org/reports/tr9/).
Standardvärdet är 0.
Om du ändrar bidiLevel
ändras giltigheten för alla tidigare brutna rader till TextLineValidity.INVALID. När bidiLevel
har ändrats är egenskapen firstInvalidLine
lika med egenskapen firstLine
, och du måste radbryta alla rader i TextBlock igen.
Implementering
public function get bidiLevel():int
public function set bidiLevel(value:int):void
Utlöser
ArgumentError — Om det angivna värdet är mindre än 0.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
bidiLevel
och sedan med udda bidiLevel
.
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 | egenskap |
content:ContentElement
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Innehåller textblockets innehåll. Eftersom ContentElement är en basklass ska du tilldela content
en instans av en ContentElement-underklass: TextElement, GraphicElement eller GroupElement. Ett TextElement-objekt innehåller en String, ett GraphicElement-objekt innehåller ett DisplayObject och ett GroupElement innehåller ett Vektor-objekt som innehåller ett eller flera TextElement, GraphicElement eller andra GroupElement-objekt. Använd ett TextElement för ett stycke med homogen text, ett GraphicElement för en grafik och GroupElement för en kombination av text- och grafikelement eller flera instanser av dessa element eller andra GroupElement-objekt.
Standardvärdet är null
.
Om du ändrar content
-egenskapen ändras giltigheten för alla tidigare skapade rader till TextLineValidity.INVALID
. När content
har ändrats är egenskapen firstInvalidLine
lika med egenskapen firstLine
, och du måste radbryta alla rader i TextBlock igen.
Implementering
public function get content():ContentElement
public function set content(value:ContentElement):void
Utlöser
ArgumentError — Om den anges till ett värde som inte är en känd underklass till ContentElement .
| |
ArgumentError — Det angivna value är redan medlem av en grupp.
|
Relaterade API-element
firstInvalidLine | egenskap |
firstInvalidLine:flash.text.engine:TextLine
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Identifierar den första raden i textblocket där TextLine.validity
inte är lika med TextLineValidity.VALID
.
Standardvärdet är null
.
Implementering
public function get firstInvalidLine():flash.text.engine:TextLine
Relaterade API-element
firstLine | egenskap |
firstLine:flash.text.engine:TextLine
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Det första TextLine i TextBlock, om något.
Standardvärdet är null
.
Implementering
public function get firstLine():flash.text.engine:TextLine
Relaterade API-element
lastLine | egenskap |
lastLine:flash.text.engine:TextLine
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Det sista TextLine i TextBlock, om något.
Standardvärdet är null
.
Implementering
public function get lastLine():flash.text.engine:TextLine
Relaterade API-element
lineRotation | egenskap |
lineRotation:String
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Roterar textraderna i textblocket som en enhet. Du måste anropa metoden createTextLine()
efter att du har angett lineRotation
för att den ska börja gälla. Standardvärdet är TextRotation.ROTATE_0
.
Den slutliga rotationen för en glyf beror på värdena för ElementFormat.textRotation
, ContentElement.textRotation
och TextBlock.lineRotation
.
TextBlock.lineRotation
används i allmänhet för asiatisk text. Så här skapar du ett lodrätt stycke med japansk text:
- Ange egenskapen
TextBlock.lineRotation
tillTextRotation.ROTATE_90
. - Låt egenskapen
ElementFormat.textRotation
för innehållet behålla standardvärdet,TextRotation.AUTO
.
Använd följande konstanter (definieras i klassen TextRotation
) när du anger värdet för den här egenskapen:
Strängvärde | Beskrivning |
---|---|
TextRotation.ROTATE_0 | Raderna roteras inte. |
TextRotation.ROTATE_90 | Raderna roteras 90 grader medurs. |
TextRotation.ROTATE_180 | Raderna roteras 180 grader. |
TextRotation.ROTATE_270 | Raderna roteras 270 grader medurs. |
TextRotation.AUTO | Stöds inte. |
Implementering
public function get lineRotation():String
public function set lineRotation(value:String):void
Utlöser
ArgumentError — Om den anges till ett värde som inte är medlem av TextRotation .
| |
ArgumentError — Om den ställs in på TextRotation.AUTO .
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
lineRotation
-egenskapen till TextRotation.ROTATE_90 så att raden visas lodrätt.
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 | egenskap |
tabStops:Vector.<flash.text.engine:TabStop>
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anger tabbstoppen för texten i textblocket i form av en vektor med TabStop
-objekt.
Standardvärdet är null
, vilket innebär att inga tabbstopp har angetts. När inga tabbstopp har angetts (eller insättningspunkten är bortom det sista angivna tabbstoppet) skapas som standard tabbstopp med en halv tums mellanrum.
När egenskapen tabStops
ställs in, skapar TextBlock en kopia av Vector för intern användning. TextBlock påverkas inte av ändringar av ursprunglig Vector eller dess innehåll. När egenskapen tabStops
efterfrågas, returneras en kopia av intern Vector. TextBlock påverkas inte heller här av ändringar av denna returnerade vektor.
Implementering
public function get tabStops():Vector.<flash.text.engine:TabStop>
public function set tabStops(value:Vector.<flash.text.engine:TabStop>):void
Utlöser
ArgumentError — Angiven tabStops innehåller null -element.
| |
ArgumentError — Angiven tabStops sorteras inte på ökande position.
|
Relaterade API-element
textJustifier | egenskap |
textJustifier:flash.text.engine:TextJustifier
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anger den TextJustifier som ska användas när rader skapas.
Standardvärdet är ett konstruerat standard-TextJustifier-objekt.
När egenskapen textJustifier
ställs in, skapar TextBlock en kopia av objektet för intern användning. TextBlock påverkas inte av ändringar av originalobjektet. När egenskapen textJustifier
efterfrågas, returneras en kopia av det interna objektet. TextBlock påverkas inte heller här av ändringar av detta returnerade objekt.
Implementering
public function get textJustifier():flash.text.engine:TextJustifier
public function set textJustifier(value:flash.text.engine:TextJustifier):void
Utlöser
ArgumentError — Om den anges till ett värde som inte är en känd underklass till TextJustifier .
|
Relaterade API-element
textLineCreationResult | egenskap |
textLineCreationResult:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anger resultatet av en createTextLine()
-åtgärd. Om blockets innehåll ändras blir tidigare brutna rader ogiltiga och den här egenskapen återställs till null
.
Standardvärdet är null
.
Värdena för den här egenskapen finns i TextLineCreationResult
.
Strängvärde | Beskrivning |
---|---|
TextLineCreationResult.SUCCESS | Raden har brutits. |
TextLineCreationResult.COMPLETE | Antingen justerades den nya skapade linjen perfekt mot följande linjer som har övergått från POSSIBLY_INVALID till VALID, eller också har ingen rad skapats på grund av att texten i blocket redan hade brutits. |
TextLineCreationResult.INSUFFICIENT_WIDTH | Ingen rad skapades eftersom ingen text passade in i den angivna bredden. |
Implementering
public function get textLineCreationResult():String
Relaterade API-element
userData | egenskap |
public var userData:*
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Medger att programmet kan koppla godtyckliga data till textblocket. Data kan vara information som hänvisar till innehållet, t.ex. ett revisionsdatum eller författarens namn, eller också kan det vara cachade data som du använder under bearbetningen.
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)
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Skapar ett TextBlock-objekt
Parametrarcontent:ContentElement (default = null ) — Innehållet i textrutan.
| |
tabStops:Vector.<flash.text.engine:TabStop> (default = null ) — Tabbstopp för texten i textblocket.
| |
textJustifier:flash.text.engine:TextJustifier (default = null ) — TextJustifier-objektet som ska användas vid radbrytning för detta block. Om ingen justering anges konstrueras en standardjustering baserat på en engelsk språkuppsättning.
| |
lineRotation:String (default = "rotate0 ") — Rotationen som används på textraderna skapas från textblocket som enheter.
| |
baselineZero:String (default = "roman ") — Anger vilken baslinje som ska vara y=0 för alla rader i blocket.
| |
bidiLevel:int (default = 0 ) — Standardinbäddningsnivån för bidi-text i textblocket.
| |
applyNonLinearFontScaling:Boolean (default = true ) — Anger att skärmutseendet ska förbättras på bekostnad av WYSIWYG-utskriftsåtergivning.
| |
baselineFontDescription:FontDescription (default = null ) — Anger vilken teckensnittsbeskrivning som radbaslinjer ska härledas från för alla rader i blocket.
| |
baselineFontSize:Number (default = 12.0 ) — Anger vilken storlek som ska användas med baselineFontDescription. Den här parametern ignoreras om baselineFontDescription är null .
|
Utlöser
ArgumentError — Angivet content är inte en känd underklass till ContentElement .
| |
ArgumentError — Angivet content är redan medlem av en grupp.
| |
ArgumentError — Angiven lineRotation är inte medlem av TextRotation .
| |
ArgumentError — Angiven baselineZero är inte medlem av TextBaseline .
| |
ArgumentError — Det angivna bidiLevel är mindre än 0.
| |
ArgumentError — Angiven tabStops innehåller null -element.
| |
ArgumentError — Angiven tabStops sorteras inte på ökande position.
| |
ArgumentError — Angiven baselineFontSize är mindre än 0.
|
Relaterade API-element
createTextLine | () | metod |
public function createTextLine(previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Instruerar textblocket att skapa en textrad från innehållet med början vid den punkt som anges av previousLine
-parametern och brytningen vid punkten som anges width
-parametern. Textraden är ett TextLine-objekt som du kan lägga till i visningslistan.
Att bryta rader över ett område i ett textblock som redan har brutits, kan förändra giltigheten hos raderna i och efter det område i vilket radbrytningen sker. Radstatusen kan ändras från VALID till INVALID eller POSSIBLY_INVALID. Om en nyligen bruten rad justerar perfekt mot en tidigare bruten rad som har en status POSSIBLY_INVALID, återställs status VALID för den föregående brutna raden och alla efterföljande POSSIBLY_INVALID-rader. Giltigheten för rader som har ställts in på värden som inte är medlemmar av TextLineValidity
ändras inte till VALID, men kan ändras till INVALID. Kontrollera firstInvalidLine
-egenskapen efter ändringar i textblock för att se var radbrytningen ska börja eller fortsätta.
Du kan skapa artificiella ordbrytningar genom att inkludera ett ZWSP-tecken (Unicode Zero Width Space) i texten. Detta kan vara användbart för språk som thai, som kräver ett lexikon för korrekt radbrytning. Flash-miljön innehåller inte ett sådant lexikon.
För att minska minnesbelastningen bör användaren anropa metoden releaseLineCreationData()
så snart alla rader har skapats (om du inte förväntar dig att raderna behöver brytas om upprepade gånger till exempel på grund av att behållarens storlek ändras). Detta bör göras för att textblocket ska kunna släppa tillfälliga data som är kopplade till radbrytning.
Parametrar
previousLine:flash.text.engine:TextLine (default = null ) — Anger den föregående brutna raden efter vilken radbrytning ska göras. Kan vara null vid brytning av den första raden.
| |
width:Number (default = 1000000 ) — Anger önskad radbredd i pixlar. Den faktiska bredden kan vara mindre.
| |
lineOffset:Number (default = 0.0 ) — En valfri parameter som anger skillnaden i pixlar mellan radens ursprung och tabbstoppens ursprung. Detta kan användas när raderna inte är justerade (men det är önskvärt att deras tabbar är det). Standardvärdet för parametern är 0,0 .
| |
fitSomething:Boolean (default = false ) — En valfri parameter som instruerar Flash Player att passa in åtminstone ett tecken på textraden, oavsett dess bredd (även om bredden är noll eller negativ, som annars skulle kunna orsaka ett fel).
|
flash.text.engine:TextLine — En textrad eller null om textblocket är tomt eller bredden som anges är mindre än bredden på nästa element. Kontrollera textLineCreationResult -egenskapen i textblocket för att särskilja dessa fall.
|
Utlöser
ArgumentError — Om TextLine som anges av previousLine inte är giltig.
| |
ArgumentError — Om den TextLine som anges av previousLine ägs av ett annat TextBlock.
| |
ArgumentError — Om width är mindre än noll, såvida inte fitSomething är true.
| |
ArgumentError — Om width är större än TextLine.MAX_LINE_WIDTH .
| |
IllegalOperationError — Om ett eller flera element i textblockets innehåll har ett null ElementFormat .
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
createTextLine()
så att den skapar textrader i ett textblock. Detta uppnås genom att exemplet utför följande:
- Skapar ett TextElement från en String och ger det en teckensnittsstorlek på 20
- Skapar ett TextBlock och tilldelar TextElement till det
- Anropar
createTextLine()
för att skapa rader som är 300 pixlar breda från textblocket - Placerar varje rad på scenen (
addChild()
) och ställer in dess position (x
ochy
)
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 | () | metod |
public function dump():String
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Dumpar det underliggande innehållet i TextBlock som en XML-sträng. Detta kan vara användbart vid automatiserad testning och inkluderar text, formatering och layoutinformation.
Följande beskriver utdata:
>block< [0-N LINE] >/block<
Du hittar en beskrivning av utdata för alla rader i metoden TextLine.dump().
Obs! Innehållet i och formatet på utdata kan komma att ändras i framtiden. Adobe garanterar inte metodens bakåtkompatibilitet.
ReturnerarString |
Relaterade API-element
findNextAtomBoundary | () | metod |
public function findNextAtomBoundary(afterCharIndex:int):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hittar indexet för nästa atomgräns från det angivna teckenindexet, exklusive tecknet vid det angivna indexet. Tecknen mellan atomgränserna kombineras så att de bildar en atom i en TextLine
, t.ex. ett ”e” och en akut accent.
Parametrar
afterCharIndex:int — Anger indexet på det tecken från vilket nästa atomgräns ska sökas.
|
int — Indexet på nästa atomgräns från det angivna teckenindexet.
|
Utlöser
RangeError — Det angivna index är utanför intervallet.
| |
IllegalOperationError — Det TextLine som det indexerade tecknet tillhör är inte giltigt.
|
Relaterade API-element
findNextWordBoundary | () | metod |
public function findNextWordBoundary(afterCharIndex:int):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hittar indexet för nästa ordgräns från det angivna teckenindexet, exklusive tecknet vid det angivna indexet. Ordgränserna bestäms utifrån tecknens Unicode-egenskaper.
Parametrar
afterCharIndex:int — Anger indexet på det tecken från vilket nästa ordgräns ska sökas.
|
int — Indexet på nästa ordgräns från det angivna teckenindexet.
|
Utlöser
RangeError — Det angivna index är utanför intervallet.
| |
IllegalOperationError — Det TextLine som det indexerade tecknet tillhör är inte giltigt.
|
findPreviousAtomBoundary | () | metod |
public function findPreviousAtomBoundary(beforeCharIndex:int):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hittar indexet för föregående atomgräns till det angivna teckenindexet, exklusive tecknet vid det angivna indexet. Tecknen mellan atomgränserna kombineras så att de bildar en atom i en TextLine
, t.ex. ett ”e” och en akut accent.
Parametrar
beforeCharIndex:int — Anger indexet på det tecken från vilket föregående atomgräns ska sökas.
|
int — Indexet på föregående atomgräns till det angivna teckenindexet.
|
Utlöser
RangeError — Det angivna index är utanför intervallet.
| |
IllegalOperationError — Det TextLine som det indexerade tecknet tillhör är inte giltigt.
|
Relaterade API-element
findPreviousWordBoundary | () | metod |
public function findPreviousWordBoundary(beforeCharIndex:int):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hittar indexet för föregående ordgräns till det angivna teckenindexet, exklusive tecknet vid det angivna indexet. Ordgränserna bestäms utifrån tecknens Unicode-egenskaper.
Parametrar
beforeCharIndex:int — Anger indexet på det tecken från vilket föregående ordgräns ska sökas.
|
int — Indexet på föregående ordgräns till det angivna teckenindexet.
|
Utlöser
RangeError — Det angivna index är utanför intervallet.
| |
IllegalOperationError — Det TextLine som det indexerade tecknet tillhör är inte giltigt.
|
getTextLineAtCharIndex | () | metod |
public function getTextLineAtCharIndex(charIndex:int):flash.text.engine:TextLine
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Returnerar TextLine som innehåller det tecken som anges av parametern charIndex
.
Parametrar
charIndex:int — Det nollbaserade indexvärdet för tecknet (det första tecknet är 0, det andra är 1 och så vidare).
|
flash.text.engine:TextLine — TextLine som innehåller tecknet vid charIndex .
|
Utlöser
RangeError — Det angivna teckenindexvärdet är utanför intervallet.
|
recreateTextLine | () | metod |
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
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Instruerar textblocket att återanvända en befintlig textrad för att skapa en textrad från innehållet, med början vid den punkt som anges av previousLine
-parametern och med radbrytningen vid den punkt som anges av width-parametern
. Textraden är ett TextLine-objekt som du kan lägga till i visningslistan. Tack vare att en befintlig textrad återanvänds förbättras prestandan eftersom färre objekt behöver skapas.
Om den textLine
som återskapas finns i ett textblock frigörs den från textblocket. Dessutom återställs alla egenskaper, inklusive ärvda egenskaper från DisplayObjectContainer
, InteractiveObject
och DisplayObject
, till standardvärdena. Slutligen tas alla underordnade för raden bort, inklusive grafikelement och andra dekorationer, och alla händelseavlyssnare för raden tas bort. Det enda undantaget i denna fullständiga återställning är att själva raden inte tas bort från dess överordnade vilket förbättrar prestandan.
Att bryta rader över ett område i ett textblock som redan har brutits, kan förändra giltigheten hos raderna i och efter det område i vilket radbrytningen sker. Radstatusen kan ändras från VALID till INVALID eller POSSIBLY_INVALID. Om en nyligen bruten rad justerar perfekt mot en tidigare bruten rad som har en status POSSIBLY_INVALID, återställs status VALID för den föregående brutna raden och alla efterföljande POSSIBLY_INVALID-rader. Giltigheten för rader som har ställts in på värden som inte är medlemmar av TextLineValidity
ändras inte till VALID, men kan ändras till INVALID. Kontrollera firstInvalidLine
-egenskapen efter ändringar i textblock för att se var radbrytningen ska börja eller fortsätta.
Du kan skapa artificiella ordbrytningar genom att inkludera ett ZWSP-tecken (Unicode Zero Width Space) i texten. Detta kan vara användbart för språk som thai, som kräver ett lexikon för korrekt radbrytning. Flash-miljön innehåller inte ett sådant lexikon.
För att minska minnesbelastningen bör användaren anropa metoden releaseLineCreationData()
så snart alla rader har skapats (om du inte förväntar dig att raderna behöver brytas om upprepade gånger till exempel på grund av att behållarens storlek ändras). Detta bör göras för att textblocket ska kunna släppa tillfälliga data som är kopplade till radbrytning.
Parametrar
textLine:flash.text.engine:TextLine — Anger en tidigare skapad TextLine som ska återanvändas.
| |
previousLine:flash.text.engine:TextLine (default = null ) — Anger den föregående brutna raden efter vilken radbrytning ska göras. Kan vara null vid brytning av den första raden.
| |
width:Number (default = 1000000 ) — Anger önskad radbredd i pixlar. Den faktiska bredden kan vara mindre.
| |
lineOffset:Number (default = 0.0 ) — En valfri parameter som anger skillnaden i pixlar mellan radens ursprung och tabbstoppens ursprung. Detta kan användas när raderna inte är justerade (men det är önskvärt att deras tabbar är det). Standardvärdet för parametern är 0,0 .
| |
fitSomething:Boolean (default = false ) — En valfri parameter som instruerar Flash Player att passa in åtminstone ett tecken på textraden, oavsett dess bredd (även om bredden är noll eller negativ, som annars skulle kunna orsaka ett fel).
|
flash.text.engine:TextLine — En textrad eller null om textblocket är tomt eller bredden som anges är mindre än bredden på nästa element. Kontrollera textLineCreationResult -egenskapen i textblocket för att särskilja dessa fall.
|
Utlöser
ArgumentError — Om textLine är null.
| |
ArgumentError — Om TextLine som anges av previousLine inte är giltig.
| |
ArgumentError — Om den TextLine som anges av previousLine ägs av ett annat TextBlock.
| |
ArgumentError — Om den TextLine som anges av previousLine även anges av textLine .
| |
ArgumentError — Om width är mindre än noll, såvida inte fitSomething är true.
| |
ArgumentError — Om width är större än TextLine.MAX_LINE_WIDTH .
| |
IllegalOperationError — Om ett eller flera element i textblockets innehåll har ett null ElementFormat .
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
textLine
:
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 | () | metod |
public function releaseLineCreationData():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Instruerar textblocket att släppa alla tillfälliga data som är kopplade till att skapa textrader. Om du vill minimera programmets minnesanvändning bör du anropa metoden releaseLineCreationData()
när du har skapat alla textrader från ett textblock. Om du däremot vill maximera prestanda för att radbryta raderna på nytt (till exempel när behållarens storlek ändras) bör du inte anropa metoden releaseLineCreationData()
. Programmet avgör hur minnesanvändning och prestanda används.
Rekommenderat arbetssätt för text som inte väntas förändras är: initiera ett textblock, anropa metoden createTextLine()
efter behov för att skapa önskade utdata och anropa sedan metoden releaseLineCreationData()
.
Relaterade API-element
releaseLines | () | metod |
public function releaseLines(firstLine:flash.text.engine:TextLine, lastLine:flash.text.engine:TextLine):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Tar bort ett textradsintervall från radlistan som underhålls av TextBlock. Detta gör att raderna kan skräpsamlas om det inte finns några andra referenser.
Anger värdet för medlemmarna textBlock
, nextLine
och previousLine
i den borttagna raden som null
. Anger värdet validity
för de borttagna raderna och alla rader som kommer efter dem i TextBlock som TextLineValidity.INVALID
.
Parametrar
firstLine:flash.text.engine:TextLine — Anger den första raden som ska frisläppas.
| |
lastLine:flash.text.engine:TextLine — Anger den sista raden som ska frisläppas.
|
Utlöser
ArgumentError — Om den TextLine som har angetts av firstLine eller lastLine inte finns i listan med textrader som underhålls av textblocket.
|
Relaterade API-element
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, 01:40 PM Z