Я провел много поисков по этому вопросу и пока не смог найти решение, я надеюсь, что совет здесь может мне помочь.
Я настроил проект (так же, как и ямногочисленные проекты до этого), который использует отдельные шрифты SWF для предоставления шрифтов для моего проекта.После загрузки я регистрирую эти шрифты в глобальном каталоге шрифтов с помощью Font.registerFont ().Мои текстовые стили взяты из внешне загруженной таблицы стилей.
По какой-то причине я не могу понять, когда я пытаюсь создать textField и использовать мои встроенные шрифты, текст исчезает с экрана.Если при создании textField я установил для embedFonts значение false, то текст будет отображаться в правильном размере и цвете (как взято из таблицы стилей), но, очевидно, с системным шрифтом по умолчанию, где мой хороший пользовательский шрифт должен быть.
Код, который я использую ниже:
TTWTextHelper.traceAvailableFonts();
TTWTextHelper.traceStyleSheet(myStyleSheet);
var myText = new TextField;
with (myText)
{
width = 250;
autoSize = TextFieldAutoSize.LEFT;
selectable = false;
antiAliasType = AntiAliasType.ADVANCED;
styleSheet = myStyleSheet;
embedFonts = true;
border = true;
multiline = true;
wordWrap = true;
htmlText = "<span class='body'>Test</body>";
}
myText.x = 300;
myText.y = 300;
addChild(myText);
Я знаю, что (очевидно) мои шрифты встраиваются, так как при запуске TTWTextHelper.traceAvailableFonts () я получаю два перечисленных шрифта.
public static function traceAvailableFonts():void
{
/*
* See what fonts we have to play with
*/
var embeddedFonts:Array = Font.enumerateFonts(false);
embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE);
trace("how many fonts? " + embeddedFonts.length);
Tools.pr(embeddedFonts);
}
приводит к:
how many fonts? 2
(array) {
[0] => (object) [object MarkerFeltThinPlain]
[1] => (object) [object MarkerFeltWidePlain]
}
, и я знаю, что моя таблица стилей загружена и корректно анализируется действием, как при запуске TTWTextHelper.traceStyleSheet (myStyleSheet);я получаю стили, перечисленные правильно:
public static function traceStyleSheet(_styleSheet:StyleSheet):void
{
trace("Tracing StyleSheet: " + _styleSheet);
var styles:Array = _styleSheet.styleNames;
for each(var style : * in styles)
{
trace("Style Name: " + style);
var thisStyle:Object = _styleSheet.getStyle(style);
Tools.pr(thisStyle);
}
}
приводит к:
Tracing StyleSheet: [object StyleSheet]
Style Name: a
(object) {
[color] => (string) #ff0000
[leading] => (string) 2
[fontFamily] => (string) "MarkerFeltThin-Plain"
[fontSize] => (string) 15
[textAlign] => (string) left
}
Style Name: .title
(object) {
[color] => (string) #ff0000
[leading] => (string) 2
[fontFamily] => (string) "MarkerFeltWide-Plain"
[fontSize] => (string) 20
[textAlign] => (string) left
}
Style Name: .body
(object) {
[color] => (string) #4b4b4b
[leading] => (string) 2
[fontFamily] => (string) "MarkerFeltThin-Plain"
[fontSize] => (string) 15
[textAlign] => (string) left
}
Любой совет очень ценится!Спасибо!