Я посмотрю позже.
Звучит несколько знакомо.
У меня была та же проблема с символами, которые не отображались в swf в статическом текстовом поле, хотя отображались в IDE (flash cs3), когда я работал на многоязычном веб-сайте. Проблема того времени была с греческими символами в Arial.
Мне пришлось скачать отдельную версию Arial с соответствующими греческими символами, и это исправило ее.
Возможно, это та же проблема, и вам нужна другая версия того же шрифта.
Вы пробовали то же самое с Courier New или Lucida Console ? Я попробовал базовую настройку (имя Tōru Iwatani, написанное двумя текстовыми полями, одним Courier New, одной консолью Lucida, встроенным шрифтом, динамическим текстом, повернутым текстовым полем, просто для проверки встраивания и корректного отображения.
EDIT:
Привет,
Я провел несколько тестов с использованием моноширинных шрифтов из dafont.com
Это фрагмент, который я использовал, чтобы найти шрифты, которые должны работать:
var fonts:Array = Font.enumerateFonts();
for(var i:int = 0 ; i < fonts.length; i++){
if(fonts[i].hasGlyphs('ō')) trace(fonts[i].fontName);
}
Вот список, который я получил:
Monaco
Lucida Grande
Bitstream Vera Sans Mono
saxMono
JackInput
Liberation Mono Regular
F25 Bank Printer
Я пробовал несколько с двумя разными подходами.
Внедрение шрифта в библиотеку не помогло, как вы можете видеть здесь:
Встраивание шрифта с использованием экземпляра в рабочей области работает для некоторых шрифтов:
Вот код, который я использовал для теста, довольно грязный, но это тест:)
l.text = j.text = f.text = li.text = s.text = b.text = 'Hello Tōru Iwatani...Hello Tōru Iwatani...Hello Tōru Iwatani...';
var lucida:TextField = getStyledTextField("Lucida Grande");
var liberation:TextField = getStyledTextField("Liberation Mono Regular");
var sax:TextField = getStyledTextField("saxMono");
addChild(lucida);
addChild(liberation);
addChild(sax);
liberation.y = 30;
sax.y = 60;
lucida.htmlText= liberation.htmlText = sax.htmlText = "<body><span class='text'>Hello Tōru Iwatani...</span></body>";
function getTextField(font:String):TextField{
var label:TextField = new TextField();
label.defaultTextFormat = new TextFormat(font,11,0x33333);
label.autoSize = TextFieldAutoSize.LEFT;
label.border = true;
label.embedFonts = true;
return label;
}
function getStyledTextField(font:String):TextField{
var style:StyleSheet = new StyleSheet();
style.parseCSS(".text { color:#333333; font-family:"+font+"; }");
var label:TextField = new TextField();
label.styleSheet = style;
label.autoSize = TextFieldAutoSize.LEFT;
label.border = true;
label.embedFonts = true;
return label;
}
l, li, b, j и т. Д. - это имена экземпляров динамических текстовых полей на сцене с использованием таких шрифтов, как
lucida grande, освобождение, битовый поток vera sans mono, JackInput и т. д.
Я не уверен, в чем проблема, но встраивание символов на сцене мне помогло,
Кроме того, я вставил все глифы, чтобы убедиться. Для компиляции требуются годы, вы можете выбрать понравившийся шрифт из тех, которые работают, и постепенно извлекать глифы, пока не найдете минимальное количество глифов, которое вам нужно использовать.
Гудлак,
George