FlashCS5 встроенный шрифт htmlText bold: как использовать TLFTextField и TextConverter?

Я очень и очень долго зацикливался на этом вопросе, который уже много раз поднимался и обсуждался. Задача все же проста, и на самом деле она не должна занимать безумное количество времени, которое у нее уже есть: выделить несколько слов в текстовом поле жирным шрифтом с помощью встроенного шрифта (кроме 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); - ср.

person Paul    schedule 06.10.2011    source источник


Ответы (1)


Для информации, я отказался от использования TLFTextFields и решил эту проблему, используя другой шрифт (тот, для которого Flash понимает жирный шрифт). Мораль истории заключается в том, что эта проблема в настоящее время является жестким ограничением для TextFields. во Flash.

Еще одна вещь: полужирный текст не будет работать в текстовых полях, динамически добавляемых на сцене, если только текстовые поля (в каждом стиле, который вам нужно использовать) уже присутствуют на сцене с самого начала (я оставил 2 текстовых поля с надписью «test» белым на белый бг, чтобы скрыть их).

Примечание на будущее: снимайте видео в стиле «Angry Video Game Nerd» для подобных проблем.

person Paul    schedule 12.10.2011