Flash CS5, проблема динамического внедрения шрифтов
Я пытаюсь создать динамическое текстовое поле с встраиванием шрифта. Встраивание динамично, как это:
public class TextFormats extends TextFormat {
private var TF:TextFormat = new TextFormat();
[Embed(source = "/fonts/tahoma.ttf", fontWeight = "normal", fontFamily = "tahomaNormal")]
var fontTahoma:Class;
private var fTahoma:Font;
public function TextFormats():void {
fTahoma = new fontTahoma();
}
public function format(fmb:String):TextFormat {
TF.letterSpacing = -1;
TF.font = fTahoma.fontName;
switch(fmb) {
case "combolist_label":
TF.color = 0x383838;
TF.size = 13;
TF.letterSpacing = 0;
break;
}
return TF;
}
}
Когда я компилирую его во Flash CS4, встроенный текст появляется на сцене нормально! Но, когда я пытался скомпилировать его с помощью Flash CS5, текст не появлялся и никаких предупреждений об ошибках.
Какова причина? Должен ли я использовать другие методы для встраивания шрифтов?!
1 ответ
Опубликовано несколько статей о большой разнице в встраивании шрифтов, которая появилась в CS5. Я думаю, что это довольно хорошо:
Возникли проблемы со встроенными шрифтами и текстом HTML во Flash CS5?
Способ, которым встроены шрифты, является улучшением в CS5, но это означает, что все ваши динамические текстовые поля CS5 ломаются, когда вы открываете FLA для редактирования в CS5! Который отстой! (Все по-прежнему работает нормально, как развернуто в SWF.)
Если вы откроете FLA CS4 в CS5, вам в основном потребуется перестроить динамические текстовые поля и повторно применить встраивание.
Здесь есть код:
import flash.text.*;
var font:Font1=new Font1();
var txt_fmt:TextFormat=new TextFormat();
txt_fmt.font=font.fontName;
txt_fmt.size=24
var txt:TextField=new TextField();
txt.autoSize=TextFieldAutoSize.LEFT;
txt.defaultTextFormat=txt_fmt;
txt.embedFonts=true
txt.text="Designscripting.com"
txt.selectable=false
addChild(txt);