Zaawansowane renderowanie tekstu

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Pakiet flash.text package zawiera liczne klasy języka ActionScript 3.0 służące do sterowania właściwościami wyświetlanego tekstu, w tym osadzonymi czcionkami, wygładzaniem, kanałem alfa i innymi ustawieniami. Skorowidz języka ActionScript 3.0 zawiera szczegółowe opisy tych klas i właściwości, w tym również klas CSMSettings, Font i TextRenderer.

Korzystnie z czcionek osadzonych

Gdy dla obiektu TextField w aplikacji zostanie określony konkretna czcionka, odtwarzacz Flash Player lub środowisko AIR poszukuje czcionki urządzenia (czcionki rezydującej na komputerze użytkownika) o tej samej nazwie. Jeśli taka czcionka nie zostanie znaleziona w systemie lub użytkownik dysponuje nieco inną wersją czcionki o danej nazwie, wyświetlany tekst może wyglądać inaczej niż zakładał autor aplikacji. Domyślnie tekst jest wyświetlany przy użyciu czcionki Times Roman.

Aby mieć pewność, że użytkownik będzie widział właściwą czcionkę, można ją osadzić w pliku SWF aplikacji. Korzystanie z czcionek osadzonych przynosi szereg korzyści:

  • Znaki czcionki osadzonej są wygładzane, przez co ich krawędzie są gładsze (dotyczy to zwłaszcza znaków o większym rozmiarze).

  • Tekst zapisany czcionką osadzoną można obracać.

  • Tekst zapisany czcionką osadzoną może być przezroczysty lub półprzezroczysty.

  • Do czcionek osadzonych można stosować styl CSS kerning .

Największym ograniczeniem związanym z użyciem czcionek osadzonych jest wzrost objętości pliku aplikacji (a tym samym ilości danych do pobrania, jeśli aplikacja jest pobierana przez użytkowników z sieci).

Dokładna metoda osadzania czcionki w pliku SWF aplikacji różni się w zależności od posiadanego środowiska programistycznego.

Po osadzeniu czcionki można spowodować, aby była ona używana w obiekcie TextField:

  • Właściwości embedFonts obiektu TextField należy przypisać wartość true .

  • Należy utworzyć obiekt TextFormat, przypisać jego właściwości fontFamily nazwę czcionki osadzonej, po czym zastosować obiekt TextFormat do obiektu TextField. Określając czcionkę osadzoną, należy właściwości fontFamily przypisać jedną nazwę. Właściwość ta nie może zawierać listy nazw czcionek rozdzielonych przecinkami.

  • Jeśli do określania czcionek pól tekstowych lub składników używane są style CSS, należy właściwości CSS font-family przypisać nazwę osadzonej czcionki. W przypadku określania czcionki osadzonej właściwość font-family musi zawierać pojedynczą nazwę, a nie listę nazw.

Osadzanie czcionki w programie Flash

Narzędzie programu Flash Professional umożliwia osadzenie niemal dowolnej czcionki zainstalowanej w systemie, w tym czcionek TrueType i czcionek postscriptowych Type 1.

Istnieje wiele sposobów osadzania czcionek w aplikacji, między innymi:

  • Określenie właściwości font i style obiektu TextField na stole montażowym i kliknięcie pola wyboru Osadź czcionki.

  • Utworzenie symbolu czcionki i odwołanie się do niego.

  • Utworzenie i użycie biblioteki wspólnej czasu wykonywania zawierającej osadzone symbole czcionek.

Szczegółowe informacje o sposobie osadzania czcionek w aplikacjach zawiera sekcja „Czcionki osadzone dla dynamicznych lub wejściowych pól tekstowych” w podręczniku Korzystanie z programu Flash .

Osadzanie czcionek w środowisku Flex

Istnieje wiele sposobów osadzania czcionek w aplikacji Flex, między innymi:

  • Użycie znacznika metadanych [Embed] w skrypcie.

  • Użycie deklaracji stylu @font-face .

  • Utworzenie klasy czcionki i osadzenie jej za pomocą znacznika [Embed] .

Bezpośrednio w aplikacji Flex można osadzać tylko czcionki TrueType. Czcionki w innych formatach, takie jak czcionki postscriptowe Type 1, należy najpierw osadzić w pliku SWF za pomocą programu Flash Professional, a następnie użyć takiego pliku SWF w aplikacji Flex. Szczegółowe informacje na temat używania czcionek osadzonych z plików SWF w aplikacji Flex zawiera sekcja „Osadzanie czcionek z plików SWF” w podręczniku Korzystanie z programu Flex 4 .

Sterowanie wyostrzeniem, grubością i wygładzaniem

Domyślnie parametry wyświetlania tekstu, takie jak wyostrzenie, grubość i wygładzanie, są dobierane przez program Flash Player lub środowisku AIR odpowiednio do wielkości, zmian kolorów i zmiennego tła tekstu. W niektórych przypadkach, gdy tekst jest bardzo mały lub bardzo duży bądź jest wyświetlany na różnych nietypowych tłach, celowe może być bezpośrednie sterowanie tymi ustawieniami. Klasa flash.text.TextRenderer oraz klasy z nią powiązane, takie jak CSMSettings, umożliwiają przesłonięcie ustawień dobranych przez program Flash Player lub środowisko AIR. Klasy te pozwalają na precyzyjne sterowanie jakością renderowania tekstu osadzonego. Więcej informacji na temat czcionek osadzonych zawiera sekcja Korzystnie z czcionek osadzonych .

Uwaga: Aby możliwe było ustawianie wyostrzania, grubości lub właściwości gridFitType bądź używanie metody TextRenderer.setAdvancedAntiAliasingTable() , właściwość flash.text.TextField .antiAliasType musi mieć wartość AntiAliasType.ADVANCED .

Poniższy przykład ilustruje zastosowanie właściwości CSM i formatowania do tekstu wyświetlanego czcionką osadzoną o nazwie myFont . Gdy użytkownik kliknie wyświetlony tekst, program Flash Player lub środowisko Adobe AIR zastosuje niestandardowe ustawienia:

var format:TextFormat = new TextFormat(); 
format.color = 0x336699; 
format.size = 48; 
format.font = "myFont"; 
 
var myText:TextField = new TextField(); 
myText.embedFonts = true; 
myText.autoSize = TextFieldAutoSize.LEFT; 
myText.antiAliasType = AntiAliasType.ADVANCED; 
myText.defaultTextFormat = format; 
myText.selectable = false; 
myText.mouseEnabled = true; 
myText.text = "Hello World"; 
addChild(myText); 
myText.addEventListener(MouseEvent.CLICK, clickHandler); 
 
function clickHandler(event:Event):void 
{ 
    var myAntiAliasSettings = new CSMSettings(48, 0.8, -0.8); 
    var myAliasTable:Array = new Array(myAntiAliasSettings); 
    TextRenderer.setAdvancedAntiAliasingTable("myFont", FontStyle.ITALIC, TextColorType.DARK_COLOR, myAliasTable); 
}