2012-04-11 19 views
8

AS3'te yazı tipi gömme ile ilgili tüm konuları inceleyip bulabilirim, tüm çözümleri denedim. Muhtemelen bariz bir şey kaçırıyorum, ama ne yaptığımı tam olarak anlamadım, lütfen bana doğru yönde yol göster. Cevapların çoğu Flash Builder veya başka bir araç içerir ama ben FlashDevelop kullanın. Bunun önemli olup olmadığı hakkında bir fikrim yok.Neden AS3'te gömülü fontları görüntüleyemiyorum?

benim Main.as bu satırı vardır:

var format:TextFormat = new TextFormat(); 
format.font = "SKA_75_marul_CE_extended"; 
format.color = 0xFFCCCC; 
format.size = 20;   

var label:TextField = new TextField(); 
label.defaultTextFormat = format; 
label.text = "test"; 
label.embedFonts = true; 
label.antiAliasType = AntiAliasType.ADVANCED; 

//label.setTextFormat(format); --> I tried this too, didn't work... 
label.defaultTextFormat = format; 
label.x += img.width + 50; 
this.addChild(label); 

tek yolu buldum:

[Embed(source = "assets/SKA_75_marul_CE_extended.ttf", 
fontName = "SKA_75_marul_CE_extended", 
fontWeight = "bold", 
advancedAntiAliasing = "true", 
mimeType = "application/x-font")] 
public static var SKA_75_marul_CE_extended:String; 

Ve bu uzun bir Sprite yapıcısı var Pointer.as denilen bir şey görüntülemek için almak için embedFonts kapatırsanız. Başarı olmadan C: /windows/fonts/arial.ttf dosyasını yerleştirmeyi denedim.

Yazı tiplerini gömme, başka hiçbir şey gibi karanlık bir sanattır ve 1 saat süren mücadeleden sonra katılmalıyım. Lütfen yardım gönderin.

GÜNCELLEME: Burada

... işçi kod bu operasyonların doğru sırayı sahip kaynaklandığını çıkıyor:

[Embed(source="assets/SKA_75_marul_CE_extended.ttf", 
       fontName = "myFont", 
       mimeType = "application/x-font", 
       fontWeight="normal", 
       fontStyle="normal", 
       unicodeRange="U+0020-U+007E", 
       advancedAntiAliasing="true", 
       embedAsCFF="false")] 
     private var myEmbeddedFont:Class; 

      var tf:TextFormat = new TextFormat("myFont", 20,0xffffff); 

      var t:TextField  = new TextField; 
      t.embedFonts  = true; // very important to set 
      t.defaultTextFormat = tf; 
      t.text    = text; 
      t.x += img.width + 50; 
      t.width = 700; 
      this.addChild(t); 
+0

Cevabınız için teşekkür ederiz. “Operasyonların doğru sırası” anahtar olarak ortaya çıktı –

cevap

5

En KESİN bir "karanlık sanat" olsun oluyor gömülü yazı tipleri doğru çalışmak. İlk önce "SKA_75_marul_CE_extended" yazısının metadata sahip olduğu gerçek ad olup olmadığını kontrol etmeliyim (adı ayıklamak için Bavul Fusion'ı kullandım). Ayrıca Flash'ın sadece gömülmeyi reddettiği TTF yazı tiplerini de gördüm (belki de geçersiz meta veriler gömülü sistemin hata yapmasına neden oluyor). Bir yazı tipi dosyası sorunu olması durumunda asıl sorunu bulana kadar bilinen bir çalışma yazı tipiyle sınamaya devam ediyorum.

Fark ettiğim bir şey "public static var SKA_75_marul_CE_extended: String;" ... Bu sınıf türünde olmamalı mı? sorunları vardı birinden

FlashDevelop yazı embed referansı: http://www.flashdevelop.org/community/viewtopic.php?p=28301

+0

Sonunda işe koyuldum, cevabınızı kabul ediyorum ve çalışma kodunu söz konusu soruya koyacağım. – joon