Fontlarla çalışma

Flash Player 10 ve üstü, Adobe AIR 1.5 ve üstü

FontDescription nesnesi, font yüzünü ve bunun bazı özelliklerini tanımlamak için ElementFormat ile birlikte kullanılır. Bu özellikler arasında font adı, ağırlığı, duruşu, oluşturması ve fontun nasıl bulunacağı (aygıt fontu ve gömülü font) yer alır.

Not: FTE, Type 1 fontlarını veya Type 3, ATC, sfnt-wrapped CID ya da Naked CID gibi bitmap fontlarını desteklemez.

Font özelliklerini tanımlama (FontDescription nesnesi)

FontDescription nesnesinin fontName özelliği, tek bir ad veya virgülle ayrılmış bir ad listesi olabilir. Örneğin, “Arial, Helvetica, _sans” gibi bir listede, metin motoru, ilk olarak "Arial", daha sonra "Helvetica" ve ilk iki fonttan birini bulamazsa son olarak "_sans" arar. Font adları kümesi, üç genel aygıt fontu adını içerir: “_sans”, “_serif” ve “_typewriter”. Bunlar oynatma sistemine bağlı olarak belirli aygıt fontlarıyla eşlenir. Aygıt fontlarını kullanan tüm font açıklamalarında bunlar gibi varsayılan adları belirtmek faydalı bir uygulamadır. fontName belirtilmemişse, varsayılan olarak “_serif” kullanılır.

fontPosture özelliği, varsayılan ( FontPosture.NORMAL ) veya italik ( FontPosture.ITALIC ) olarak ayarlanabilir. fontWeight özelliği, varsayılan ( FontWeight.NORMAL ) veya kalın ( FontWeight.BOLD ) olarak ayarlanabilir.

var fd1:FontDescription = new FontDescription(); 
fd1.fontName = "Arial, Helvetica, _sans"; 
fd1.fontPosture = FontPosture.NORMAL; 
fd1.fontWeight = FontWeight.BOLD;

Gömülü fontlar ve aygıt fontları

FontDescription nesnesinin fontLookup özelliği, metin motorunun metni oluşturmak için bir aygıt fontu mu, yoksa gömülü font mu arayacağını belirtir. Bir aygıt fontu ( FontLookup.DEVICE ) belirtilirse, çalışma zamanı, fontu oynatma sisteminde arar. Bir gömülü fontun ( FontLookup.EMBEDDED_CFF ) belirtilmesi, çalışma zamanının, SWF dosyası içinde belirtilen ada sahip bir gömülü font aramasına neden olur. Yalnızca gömülü CFF (Kompakt Font Biçimi) fontları bu ayarla çalışır. Belirtilen font bulunamazsa, bir geri dönüş aygıt fontu kullanılır.

Aygıt fontları, SWF dosya boyutunun daha küçük olmasını sağlar. Gömülü fontlar, platformlar arasında daha fazla aslına uygunluk sağlar.

var fd1:FontDescription = new FontDescription(); 
fd1.fontLookup = FontLookup.EMBEDDED_CFF; 
fd1.fontName = "Garamond, _serif";

Oluşturma modu ve katkı

CFF (Kompakt Font Biçimi) oluşturma, Flash Player 10 ve AIR 1.5'ten itibaren kullanılabilir. Bu font oluşturma türü, metni daha okunaklı hale getirir ve fontların küçük boyutlarda daha yüksek kalitede görüntülenmesine olanak sağlar. Bu ayar yalnızca gömülü fontlar için geçerlidir: FontDescription , renderingMode özelliği için varsayılan olarak bu ayarı ( RenderingMode.CFF ) kullanır. Flash Player 7 veya önceki sürümler tarafından kullanılan oluşturma türüyle eşleşmesi için bu ayarı RenderingMode.NORMAL olarak ayarlayabilirsiniz.

CFF oluşturma seçildiğinde, ikinci bir özellik olan cffHinting , fontun yatay gövdelerinin alt piksel ızgarasına nasıl sığdırıldığını denetler. Varsayılan değer olan CFFHinting.HORIZONTAL_STEM , CFF katkısını kullanır. Bu özelliğin CFFHinting.NONE olarak ayarlanması, animasyon veya büyük font boyutları için uygun olacak şekilde katkıyı kaldırır.

var fd1:FontDescription = new FontDescription(); 
fd1.renderingMode = RenderingMode.CFF; 
fd1.cffHinting = CFFHinting.HORIZONTAL_STEM;

FontDescription öğesini kilitleme ve klonlama

Bir FontDescription nesnesi bir ElementFormat öğesine atandığında, bunun locked özelliği otomatik olarak true değerine ayarlanır. Kilitli bir FontDescription nesnesini değiştirmeyi denemek, bir IllegalOperationError atılmasına neden olur. En iyi uygulama, bu gibi bir nesneyi ElementFormat örneğine atamadan önce tam olarak tanımlamaktır.

Varolan bir FontDescription öğesini değiştirmek istiyorsanız, ilk olarak locked özelliğini denetleyin. Değeri true ise, nesnenin kilitlenmemiş bir kopyasını oluşturmak için clone() yöntemini kullanın. Bu kilitlenmemiş nesnenin özellikleri değiştirilebilir ve daha sonra nesne ElementFormat öğesine atanabilir. Bu TextElement öğesinden oluşturulan yeni satırların tümü yeni biçimlendirmeye sahip olur. Söz konusu aynı nesneden oluşturulan önceki satırlar değiştirilmez.

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