Я очень и очень долго зацикливался на этом вопросе, который уже много раз поднимался и обсуждался. Задача все же проста, и на самом деле она не должна занимать безумное количество времени, которое у нее уже есть: выделить несколько слов в текстовом поле жирным шрифтом с помощью встроенного шрифта (кроме Arial).
Тег b, похоже, работает только при использовании шрифта, в котором Flash, кажется, изначально распознает жирный шрифт (Arial и т. Д.), Но я использую шрифт, который бывает четырех уровней: обычный, средний, полужирный и черный. Мне нужен черный жир для жирных слов в основном тексте среднего размера.
Я провел буквально десятки тестов, все безуспешно с использованием "классических" текстовых полей, встраивая шрифт один раз для каждого веса и используя htmlText: пробовал все возможные настройки в диалоговом окне встраивания с тегами b, span, em - с TextFormat (жирный, шрифт ) или StyleSheet (fontWeight, fontStyle, fontFamily) ...
Вывод: НЕТ способа установить 2 разных встроенных шрифта в одном текстовом поле.
Проблема, несомненно, связана со встраиванием шрифтов, что подтверждается следующими вспомогательными функциями отладки:
/**
* Debug helper: trace embedded fonts
*/
function trace_embedded_fonts():void
{
var fonts:Array = Font.enumerateFonts();
for ( var i:int = 0; i < fonts.length; i++ )
trace( fonts[ i ].fontName + " - " + fonts[ i ].fontStyle + " - " + fonts[ i ].fontType );
}
/**
* Debug helper: Trace format
*/
function trace_classic_textfield_format( tf:TextField ):void
{
trace( "trace_tlf_textfield_format( " + tf.name + " )" );
trace( " font = " + tf.getTextFormat().font );
}
вывод соответственно Maven Pro - regular - embedded
(только эта единственная строка, хотя я вставил 4 раза шрифт, по одному разу для веса - и да: я назвал их внимательно, и я попытался экспортировать для ActionScript, в DF3 и в DF4, а также без экспорта) и font = Maven Pro
для всех экземпляров textField на сцене, какой бы стиль к ним не применялся (также пробовали выбрать встроенный шрифт - с *
в конце - и системный шрифт).
Короче шрифт странный, но я ничего не могу с этим поделать.
Итак, мой вопрос касается новой структуры текстового макета (TLFTextField): можно ли с ее помощью этого добиться?
Текст загружается из XML и содержит простые теги, такие как em, b и т. Д., Но переписывать их в потоковые теги нельзя.
Я попробовал преобразование, доступное через класс TextConverter - например, var tf:TextFlow = TextConverter.importToFlow(hyperText, TextConverter.TEXT_FIELD_HTML_FORMAT);
- ср.