Zaawansowane renderowanie tekstuFlash 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 osadzonychGdy 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 jeśli użytkownika dysponuje nieco inną wersją czcionki o danej nazwie, wyświetlany tekst może wyglądać inaczej niż zakładał twórca aplikacji. 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:
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:
Osadzanie czcionki w programie FlashNarzę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:
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 FlexIstnieje wiele sposobów osadzania czcionek w aplikacji Flex, między innymi:
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ładzaniemDomyś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);
}
|
|