Avancerad textåtergivningFlash 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® Professional CS5 innehåller detaljerade beskrivningar av dessa klasser och egenskaper, inklusive klasserna CSMSettings, Font och TextRenderer. Använda inbäddade teckensnittNä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. 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:
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:
Bädda in ett teckensnitt i FlashMed 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:
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 FlexDu kan bädda in teckensnitt i ett Flex-program på många sätt, bland annat:
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ämningSom 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); } |
|