Flash Player 10 i nowsze wersje, Adobe AIR 1.5 i nowsze wersje
       
       
       
       
        
         | 
  
           
            Obiekt
            
             TextBlock
            
            jest generatorem służącym do tworzenia wierszy tekstu. Treść obiektu
            
             TextBlock
            
            przypisuje się za pośrednictwem obiektu
            
             TextElement
            
            . Obiekt
            
             ElementFormat
            
            obsługuje formatowanie tekstu. Klasa ElementFormat definiuje takie właściwości, jak wyrównanie linii bazowej, kerning, światło, obrót tekstu i wielkość czcionki, kolor oraz wielkość liter. Zawiera także obiekt
            
             FontDescription
            
            omówiony szczegółowo w sekcji
            
             Praca z czcionkami
            
            .
            
           
            
           
           
            Korzystanie z obiektu ElementFormat
           
            
             Konstruktor obiektu
             
              ElementFormat
             
             ma wiele różnych parametrów opcjonalnych, w tym parametr
             
              FontDescription
             
             . Odpowiednie właściwości można ustawić także spoza konstruktora. Poniższy przykład ilustruje relację między różnymi obiektami w ramach operacji definiowania i wyświetlania prostego wiersza tekstu:
             
             package 
{ 
    import flash.display.Sprite; 
    import flash.text.*; 
 
    public class ElementFormatExample extends Sprite 
    { 
        private var tb:TextBlock = new TextBlock(); 
        private var te:TextElement; 
        private var ef:ElementFormat; 
         private var fd:FontDescription = new FontDescription(); 
        private var str:String; 
        private var tl:TextLine; 
 
        public function ElementFormatExample() 
        { 
            fd.fontName = "Garamond"; 
            ef = new ElementFormat(fd); 
            ef.fontSize = 30; 
            ef.color = 0xFF0000; 
            str = "This is flash text"; 
            te = new TextElement(str, ef); 
            tb.content = te; 
            tl = tb.createTextLine(null,600); 
            addChild(tl); 
        } 
    } 
} 
           
            
           
           
            Kolor i przezroczystość (alfa) czcionki
           
            
             Właściwość
             
              color
             
             obiektu
             
              ElementFormat
             
             służy do ustawiania koloru czcionki. Jej wartość jest liczbą całkowitą reprezentującą składniki RGB koloru, na przykład 0xFF0000 dla koloru czerwonego lub 0x00FF00 dla koloru zielonego. Wartość domyślna to 0x000000 (kolor czarny).
             
             Właściwość
             
              alpha
             
             służy do określania wartości przezroczystości alfa dla elementu (zarówno klasy
             
              TextElement
             
             , jak i
             
              GraphicElement
             
             ). Dozwolone są wartości z przedziału od 0 (pełna przezroczystość) do 1 (pełne krycie, wartość domyślna). Elementy z wartością
             
              alpha
             
             równą 0 są niewidoczne, ale wciąż aktywne. Wartość ta jest mnożona przez ewentualne odziedziczone wartości właściwości alpha, przez co element staje się bardziej przezroczysty.
             var ef:ElementFormat = new ElementFormat(); 
ef.alpha = 0.8; 
ef.color = 0x999999; 
 
           
            
           
           
            Wyrównanie i przesunięcie linii bazowej
           
            
             Czcionka i wielkość największego tekstu w wierszu wyznacza jej dominującą linię bazową. Można przesłonić te wartości, ustawiając właściwości
             
              TextBlock.baselineFontDescription
             
             i
             
              TextBlock.baselineFontSize
             
             . Dominującą linię bazową można wyrównać do jednej z kilku linii bazowych w tekście. Należy do nich linia wydłużenia górnego, linia wydłużenia dolnego lub górna krawędź, środek bądź dolna krawędź ideogramów.
             
             
                
               
                A.
               
                Wydłużenie górne
               
                
                B.
               
                Linia bazowa
               
                
                C.
               
                Wydłużenie dolne
               
                
                D.
               
                Wysokość x
               
                
             W obiekcie
             
              ElementFormat
             
             trzy właściwości określają charakterystykę linii bazowej i wyrównania. Właściwość
             
              alignmentBaseline
             
             określa główną linię bazową obiektu
             
              TextElement
             
             lub
             
              GraphicElement
             
             . Jest to linia bazowa, do której element jest „przyciągany”; ponadto do tej pozycji wyrównywana jest dominująca linia bazowa całego tekstu.
             
             Właściwość
             
              dominantBaseline
             
             określa, która z różnych linii bazowych elementu ma być używana; zależy od tego pionowe położenie elementu w wierszu. Wartość domyślna to
             
              TextBaseline.ROMAN
             
             , jednak jako dominującą linię bazową można wybrać także
             
              IDEOGRAPHIC_TOP
             
             lub
             
              IDEOGRAPHIC_BOTTOM
             
             .
             
             Właściwość
             
              baselineShift
             
             przesuwa linię bazową o określoną liczbę pikseli na osi Y. W zwykłym (nieobróconym) tekście wartość dodatnia powoduje przesunięcie linii bazowej w dół, a wartość ujemna — w górę.
             
           
            
           
           
            Wielkość liter
           
            
             Właściwość
             
              TypographicCase
             
             obiektu
             
              ElementFormat
             
             określa wielkość liter, na przykład wielkie litery, małe litery lub wersaliki.
             
              
var ef_Upper:ElementFormat = new ElementFormat(); 
ef_Upper.typographicCase = TypographicCase.UPPERCASE; 
 
var ef_SmallCaps:ElementFormat = new ElementFormat(); 
ef_SmallCaps.typographicCase = TypographicCase.SMALL_CAPS;  
           
            
           
           
            Obracanie tekstu
           
            
             Blok tekstu lub glify w segmencie tekstu można obracać z krokiem 90 stopni. Klasa TextRotation definiuje następujące stałe określające obrót zarówno bloku tekstu, jak i glifów:
              
              
               
                
                 | 
                   Stała
                   | 
                   Wartość
                   | 
                   Opis
                   |  
                 | 
                   AUTO
                   | 
                   "auto"
                   | 
                   Określa obrót o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara. Zwykle używana z pionowym tekstem azjatyckim do obracania tylko tych glifów, które wymagają obrócenia.
                   |  
                 | 
                   ROTATE_0
                   | 
                   "rotate_0"
                   | 
                   Określa brak obrotu.
                   |  
                 | 
                   ROTATE_180
                   | 
                   "rotate_180"
                   | 
                   Określa obrót o 180 stopni.
                   |  
                 | 
                   ROTATE_270
                   | 
                   "rotate_270"
                   | 
                   Określa obrót o 270 stopni.
                   |  
                 | 
                   ROTATE_90
                   | 
                   "rotate_90"
                   | 
                   Określa obrót o 90 stopni w kierunku zgodnym z ruchem wskazówek zegara.
                   | 
             Aby obrócić wiersze tekstu w bloku tekstowym, należy przypisać wartość właściwości
             
              TextBlock.lineRotation
             
             przed wywołaniem metody
             
              TextBlock.createTextLine()
             
             w celu utworzenia wiersza tekstu.
             
             Aby obrócić glify w bloku tekstu lub segmencie, należy przypisać właściwości
             
              ElementFormat.textRotation
             
             liczbę stopni, o jaką glify mają być obrócone. Glif jest to kształt tworzący znak lub jeden z kształtów wchodzących w skład znaku złożonego z wielu glifów. Przykładami glifów są litera a oraz kropka w literze i.
             
             Obracanie glifów ma zastosowanie w niektórych językach azjatyckich, w których obracanie wierszy do pionu nie jest równoznaczne z obróceniem znaków w tych wierszach. Więcej informacji o obracaniu tekstu azjatyckiego zawiera sekcja
             
              Justowanie tekstu w językach wschodnioazjatyckich
             
             .
             
             Poniższy przykład ilustruje obrót bloku tekstu i glifów w tym bloku, co jest typowym sposobem obrotu w przypadku tekstu azjatyckiego. W przykładzie zastosowano także czcionkę japońską:
             
             package 
{ 
    import flash.display.Sprite; 
    import flash.text.*; 
 
    public class RotationExample extends Sprite 
    { 
        private var tb:TextBlock = new TextBlock(); 
        private var te:TextElement; 
        private var ef:ElementFormat; 
         private var fd:FontDescription = new FontDescription(); 
        private var str:String; 
        private var tl:TextLine; 
 
        public function RotationExample() 
        { 
            fd.fontName = "MS Mincho"; 
            ef = new ElementFormat(fd); 
            ef.textRotation = TextRotation.AUTO; 
            str = "This is rotated Japanese text"; 
            te = new TextElement(str, ef); 
            tb.lineRotation = TextRotation.ROTATE_90; 
            tb.content = te; 
            tl = tb.createTextLine(null,600); 
            addChild(tl); 
        } 
    } 
} 
           
            
           
           
            Blokowanie i klonowanie obiektu ElementFormat
           
            
             Gdy obiekt
             
              ElementFormat
             
             zostanie przypisany do dowolnego typu obiektu
             
              ContentElement
             
             , jego właściwość
             
              locked
             
             zostaje automatycznie ustawiona na
             
              true
             
             . Próba zmodyfikowania zablokowanego w ten sposób obiektu
             
              ElementFormat
             
             powoduje wygenerowanie błędu
             
              IllegalOperationError
             
             . Dobrą praktyką jest pełne zdefiniowanie takiego obiektu przed przypisaniem go do instancji klasy
             
              TextElement
             
             .
             
             Chcąc zmodyfikować istniejącą instancję klasy
             
              ElementFormat
             
             , należy najpierw sprawdzić jej właściwość
             
              locked
             
             . Jeśli ma wartość
             
              true
             
             , należy za pomocą metody
             
              clone()
             
             utworzyć niezablokowaną kopię obiektu. Właściwości tego niezablokowanego obiektu można zmieniać, a obiekt można przypisywać do instancji klasy
             
              TextElement
             
             . Wszelkie nowe wiersze utworzone na podstawie tej instancji będą sformatowane zgodnie z nowymi właściwościami. Poprzednie wiersze utworzone na podstawie tego samego obiektu ze starym formatem pozostaną niezmienione.
             
             package 
{ 
    import flash.display.Sprite; 
    import flash.text.*; 
 
    public class ElementFormatCloneExample extends Sprite 
    { 
        private var tb:TextBlock = new TextBlock(); 
        private var te:TextElement; 
        private var ef1:ElementFormat; 
        private var ef2:ElementFormat; 
         private var fd:FontDescription = new FontDescription(); 
 
        public function ElementFormatCloneExample() 
        { 
            fd.fontName = "Garamond"; 
            ef1 = new ElementFormat(fd); 
            ef1.fontSize = 24; 
            var str:String = "This is flash text"; 
            te = new TextElement(str, ef); 
            tb.content = te; 
            var tx1:TextLine = tb.createTextLine(null,600); 
            addChild(tx1); 
             
            ef2 = (ef1.locked) ? ef1.clone() : ef1; 
            ef2.fontSize = 32; 
            tb.content.elementFormat = ef2; 
            var tx2:TextLine = tb.createTextLine(null,600); 
            addChild(tx2); 
        } 
    } 
} 
           |  |  |