2 Kasım 2009 Pazartesi

Font Embed

ctionScript 3.0: Dinamik ve Giriş Metin Alanlarına Font Gömme (Font Embedding)

Muttalip TULGAR Tarih: 25/08/2009 Yorum: 9 adet



Flash ile çalışırken bazı metinlerinizi dinamik olarak oluşturmak isteyebilirsiniz. Dinamikten kastımız tabiî ki metin oluşturma işlemini Flash çalışma sahnesinde değil de Flash dosyasını çalıştırırken oluşturmak. Bunun için metinlerimizi kod satırları arasına yazmamız gerekiyor. Böyle bir işlemi gerçekleştirmek için fontlara biraz dikkat etmeniz gerekecek.


Eğer çalışmalarınızda hep statik metin alanları kullandıysanız bugüne kadar font sorunları ile pek karşılaşmamışsınızdır. Çünkü Flash dosyanız çalıştırılırken tasarım aşamasında kullandığınız fontlar SWF dosyanızın içine gömülü olacağından, kullanıcının bilgisayarında o SWF' deki fontlar olmasa bile kullanıcı yine fontları sorunsuz olarak görecektir.

Ancak dinamik ve giriş (input) metin alanlarında kullanılan fontlar kullanıcının bilgisayarında yoksa o alanlarda font sorunları yaşanır ve kullanıcıyı çileden çıkarır. Bu aynı zamanda saatlerce uğraştığınız Flash dosyanızın tasarladığınız gibi görünmemesine de yol açar. Kullanıcının bilgisayarında dinamik alanlardaki fontlar görünmüyorsa bilin ki Flash Player, kullanıcının sisteminde bu fontları destekleyen uygun bir font bulamamıştır. Dinamik font kullanmanın sakıncalarından biri de, dinamik metninizi belirli bir açı ile döndürmeye kalktığınızda metni göremeyeceksiniz. Fakat tüm bu sorunları çözmek için yapmanız gereken şey; fontlarınızı Flash dosyanızın içine gömmek.

Gömülü font (Embedded Font) kullanmanın size şu faydalara olacaktır:

• Gömülü font karakterlerine kenar yumuşatma uygulayabilirsiniz.

• Gömülü fontları kullanan metni döndürebilirsiniz.

• Gömülü font metni saydam (alpha) hale getirilebilirsiniz.

• Gömülü fontlarla CSS stilini kullanabilirsiniz.

Bu arada gömülü fontların kullanmanın en büyük eksisi; uygulamanızın dosya boyutunun artırmasıdır.

Artık font gömme işlemine başlayabiliriz:

1. Kütüphane (Library) içinde farenin sağ tuşuyla yeni bir font sembolü oluşturuyoruz. (New Font) MMİstanbul

2. "Name" metin alanına font öğesi için bir ad yazıyoruz.

3. Font menüsünden bir font seçiyoruz.

4. Linkage alanındaki "Export For ActionScript" alanını işaretleyerek Class alanına kodlamada kullanacağımız bir isim veriyoruz.

MMİstanbul 5. F9 ile kod alanımız açıyor ve şu kodları yazmaya başlıyoruz.


var yazi:String="Podcasting, çevrimiçi yayının üyelik gibi yollarla kullanıcılara ulaştırılmasıdır. Birçok podcast, MP3 ve görüntü dosyaları biçimlerinde olup RSSprotokolüyle yayınlanır.Podcasting'in ortaya çıkışındaki amaç bireylerin kendi dinletilerini dağıtmalarıydı.";

//Kütüphanedeki fontun Class adı ile bir font
//nesnesi oluşturuyoruz.

var fontum:Font = new Calligraph();

//yazi adlı metnimizin rengini,kalınlığını,
//boyutunu ve fontunu ayarlamak için bir
//TextFormat nesnesi oluşturuyoruz.

var bicim:TextFormat=new TextFormat();
bicim.color=0x4918BC;
bicim.bold;
bicim.size=16;

//fontum adlı font nesnesini font tipi
// olarak belirttik.

bicim.font=fontum.fontName;

// txtF adlı TextField nesnesi oluşturarak
// string olan yazi değişkenini Text nesnesi yaptık

var txtF:TextField=new TextField();
txtF.text=yazi;

//bicim adlı TextFormatımızı txtF adlı
//TextField nesnemize uyguladık

txtF.setTextFormat(bicim);
txtF.autoSize=TextFieldAutoSize.CENTER;
txtF.wordWrap=true;

//Fontumuzu txtF nesnesinin içine gömdük.

txtF.embedFonts=true;

// metnimize kenar yumuşaklığı uyguladık

txtF.antiAliasType = AntiAliasType.ADVANCED;

//metin alanını belirledik

txtF.width=400;
txtF.height=300;

// metni ekranda göstermek için
// Sprite nesnesi oluşturup içine koyduk.

var kap:Sprite=new Sprite();
addChild(kap);
kap.addChild(txtF);

Hiç yorum yok: