Objektet
FontDescription
används tillsammans med
ElementFormat
för att identifiera ett typsnitt och definiera vissa av dess egenskaper. Egenskaperna inkluderar teckensnittsnamn, bredd, läge, återgivning och var teckensnittet finns (på enheten eller inbäddat).
Obs!
FTE har inte stöd för Type 1-teckensnitt eller bitmappade teckensnitt som Type 3, ATC, sfnt-wrapped CID och Naked CID.
Definiera teckensnittsegenskaper (objektet FontDescription)
Egenskapen
fontName
i
FontDescription
-objektet kan vara ett namn eller en kommaavgränsad lista med namn. I en lista som t.ex. ”Arial, Helvetica, _sans”, söker textmotorn först efter ”Arial”, sedan ”Helvetica” och till slut efter ”_sans” om programmet inte kan hitta de två första teckensnitten. Uppsättningen med teckensnittsnamn inkluderar tre namn på generiska enhetsteckensnitt: ”_sans”, ”_serif” och ”_typewriter”. De hänvisar till specifika enhetsteckensnitt beroende på uppspelningssystemet. Det är en bra rutin att ange standardnamn som dessa i alla teckensnittsbeskrivningar som använder enhetsteckensnitt. ”_serif” används som standard om
fontName
inte anges.
Egenskapen
fontPosture
kan ställas in på standardvärdet (
FontPosture.NORMAL
) eller kursiv stil (
FontPosture.ITALIC
). Egenskapen
fontWeight
kan ställas in på standardvärdet (
FontWeight.NORMAL
) eller på fet stil (
FontWeight.BOLD
).
var fd1:FontDescription = new FontDescription();
fd1.fontName = "Arial, Helvetica, _sans";
fd1.fontPosture = FontPosture.NORMAL;
fd1.fontWeight = FontWeight.BOLD;
Inbäddade teckensnitt jämfört med enhetsteckensnitt
Egenskapen
fontLookup
i
FontDescription
-objektet anger om textmotorn söker efter ett enhetsteckensnitt eller ett inbäddat teckensnitt för textåtergivning. Om ett enhetsteckensnitt (
FontLookup.DEVICE
) anges, söker programmet efter teckensnittet på uppspelningssystemet vid körningstillfället. Om du anger ett inbäddat teckensnitt (
FontLookup.EMBEDDED_CFF
) söker programmet efter ett inbäddat teckensnitt i SWF-filen vid körningstillfället. Endast inbäddade CFF-teckensnitt (Compact Font Format) fungerar med den här inställningen. Ett reservteckensnitt på enheten används om det angivna teckensnitt inte hittas.
SWF-filens storlek blir mindre om enhetsteckensnitt används. Inbäddade teckensnitt ger enhetlig återgivning på olika plattformar.
var fd1:FontDescription = new FontDescription();
fd1.fontLookup = FontLookup.EMBEDDED_CFF;
fd1.fontName = "Garamond, _serif";
Återgivningsläge och indikering
CFF-återgivning (Compact Font Format) är tillgängligt från och med Flash Player 10 och Adobe AIR 1.5. Den här typen av teckensnittsåtergivning gör texten tydligare och gör att små teckensnittsstorlekar kan visas med högre kvalitet. Inställningen gäller bara inbäddade teckensnitt.
FontDescription
ställs som standard in på den här inställningen (
RenderingMode.CFF
) för egenskapen
renderingMode
. Du kan ställa in egenskapen på
RenderingMode.NORMAL
så att den motsvarar återgivningstypen som används i Flash Player 7 eller tidigare versioner.
När CFF-återgivning är valt, styr en annan egenskap
cffHinting
hur vågräta linjer i glyferna passas in i delpixelrutnätet. Standardvärdet
CFFHinting.HORIZONTAL_STEM
använder CFF-indikering. Indikering tas bort om egenskapen ställs in på
CFFHinting.NONE
, vilket är lämpligt för animeringar och stora teckensnitt.
var fd1:FontDescription = new FontDescription();
fd1.renderingMode = RenderingMode.CFF;
fd1.cffHinting = CFFHinting.HORIZONTAL_STEM;
Låsa och klona FontDescription
När ett
FontDescription
-objekt tilldelas till ett
ElementFormat
, ställs egenskapen
locked
automatiskt in på
true
. Om du försöker ändra ett låst
FontDescription
-objekt, inträffar felet
IllegalOperationError
. Det bästa sättet är att helt definiera ett sådant objekt innan det tilldelas till en
ElementFormat
-instans.
Om du vill ändra en befintlig
FontDescription
-instans kontrollerar du först egenskapen
locked
. Om egenskapen är
true
kan du skapa en olåst kopia av objektet med metoden
clone()
. Du kan ändra egenskaperna för det olåsta objektet och sedan tilldela det till
ElementFormat
-instansen. Eventuella nya rader som skapas från detta
TextElement
kommer att ha den nya formateringen. Rader som skapats tidigare från samma objekt ändras inte.
package
{
import flash.display.Sprite;
import flash.text.*;
public class FontDescriptionCloneExample extends Sprite
{
private var tb:TextBlock = new TextBlock();
private var te:TextElement;
private var ef1:ElementFormat;
private var ef2:ElementFormat;
private var fd1:FontDescription = new FontDescription();
private var fd2:FontDescription;
public function FontDescriptionCloneExample()
{
fd1.fontName = "Garamond";
ef1 = new ElementFormat(fd);
var str:String = "This is flash text";
te = new TextElement(str, ef);
tb.content = te;
var tx1:TextLine = tb.createTextLine(null,600);
addChild(tx1);
fd2 = (fd1.locked) ? fd1.clone() : fd1;
fd2.fontName = "Arial";
ef2 = (ef1.locked) ? ef1.clone() : ef1;
ef2.fontDescription = fd2;
tb.content.elementFormat = ef2;
var tx2:TextLine = tb.createTextLine(null,600);
addChild(tx2);
}
}
}
|
|
|