Avancerad textåtergivning

Flash Player 9 och senare, Adobe AIR 1.0 och senare

I ActionScript 3.0 finns ett antal klasser i paketet flash.text som styr egenskaperna för den visade texten, inklusive inbäddade teckensnitt, kantutjämningsinställningar, styrning av alfakanaler och andra specifika inställningar. Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen innehåller detaljerade beskrivningar av dessa klasser och egenskaper, inklusive klasserna CSMSettings, Font och TextRenderer.

Använda inbäddade teckensnitt

När du anger ett visst teckensnitt för ett textfält i ditt program, söker Flash Player eller AIR efter ett enhetsteckensnitt (ett teckensnitt på användarens dator) med samma namn. Om teckensnittet inte finns i systemet eller om användaren har en annan version av teckensnittet, kan texten som visas se annorlunda ut än du tänkt dig. Texten visas som standard med teckensnittet Times Roman.

Du kan bädda in teckensnittet i programmets SWF-fil om du vill vara säker på att användaren ska se exakt rätt teckensnitt. Inbäddade teckensnitt har flera fördelar:

  • Inbäddade teckensnitt är kantutjämnade vilket gör att kanterna ser jämnare ut, speciellt när texten är stor.

  • Du kan rotera text som använder inbäddade teckensnitt.

  • Inbäddade teckensnitt kan vara genomskinliga eller halvgenomskinliga.

  • Du kan använda CSS-formatet kerning med inbäddade teckensnitt.

Den största nackdelen med inbäddade teckensnitt är att de ökar filstorleken eller hämtningsstorleken på ditt program.

Den exakta metoden för att bädda in en teckensnittsfil i programmets SWF-fil varierar beroende på utvecklingsmiljön.

Du kan kontrollera att ett textfält använder rätt inbäddat teckensnitt när du har bäddat in det:

  • Ställ in egenskapen embedFonts för textfältet på true .

  • Skapa ett TextFormat-objekt, ställ in egenskapen fontFamily på namnet på det inbäddade teckensnittet och tillämpa TextFormat-objektet på textfältet. När du specificerar ett inbäddat teckensnitt bör egenskapen fontFamily bara innehålla ett namn, du kan inte använda en kommaavgränsad lista med flera teckensnittsnamn.

  • Om du använder CSS-format för att ange teckensnitt för textfält eller komponenter, ska du ställa in CSS-egenskapen font-family på det inbäddade teckensnittets namn. Egenskapen font-family får bara innehålla ett namn, inte en lista över namn, när du vill ange ett inbäddat teckensnitt.

Bädda in ett teckensnitt i Flash

Med Flash Professional kan du bädda in nästan vilket teckensnitt som helst som är installerat i systemet, inklusive TrueType-teckensnitt och Type 1 Postscript-teckensnitt.

Du kan bädda in teckensnitt i ett program på många sätt, bland annat:

  • Ange teckensnittet och stilegenskaperna för ett textfält på scenen och klicka på kryssrutan Bädda in teckensnitt

  • Skapa och ange en referens för en teckensnittssymbol

  • Skapa och använda ett delat bibliotek som innehåller inbäddade teckensnittssymboler vid körning

Mer information om att bädda in teckensnitt i program finns i ”Inbäddade teckensnitt för dynamiska textfält och inmatningsfält” i Använda Flash .

Bädda in ett teckensnitt i Flex

Du kan bädda in teckensnitt i ett Flex-program på många sätt, bland annat:

  • Använda metadatataggen [Embed] i ett skript

  • Med formatdeklarationen @font-face

  • Upprätta en klass för teckensnittet och bädda in det med hjälp av taggen [Embed] .

Du kan bara bädda in TrueType-teckensnitt direkt i ett Flex-program. Teckensnitt med andra format, t.ex. Type 1 Postscript-teckensnitt, kan först bäddas in i en SWF-fil med Flash Professional och sedan kan SWF-filen användas i Flex-programmet. Mer information om att använda inbäddade teckensnitt från SWF-filer i Flex finns i avsnittet om att bädda in teckensnitt från SWF-filer i Använda Flex 4 .

Reglera skärpa, tjocklek och kantutjämning

Som standard fastställer Flash Player eller AIR inställningarna för textvisning, t.ex. skärpa, tjocklek och kantutjämning, allt eftersom textens storlek eller färg ändras eller texten visas på olika bakgrunder. I vissa fall, t.ex. när du har mycket liten eller mycket stor text eller text på olika unika bakgrunder, kanske du vill ha kontroll över inställningarna. Du kan åsidosätta Flash Player- eller AIR-inställningarna genom att använda klassen flash.text.TextRenderer och tillhörande klasser, t.ex. CSMSettings. Dessa klasser ger dig fullständig kontroll över den inbäddade textens visningskvalitet. Mer information om inbäddade teckensnitt finns i Använda inbäddade teckensnitt .

Obs! Egenskapen flash.text.TextField .antiAliasType måste ha värdet AntiAliasType.ADVANCED för att du ska kunna ställa in skärpa, tjocklek och egenskapen gridFitType eller om du vill använda metoden TextRenderer.setAdvancedAntiAliasingTable() .

Exemplet nedan använder anpassade CSM-egenskaper ( continuous stroke modulation) och formatering för text som visas med ett inbäddat teckensnitt kallat myFont . Flash Player eller Adobe AIR tillämpar de anpassade inställningarna när användaren klickar på texten som visas:

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); 
}