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