FlashCS5 встроенный шрифт htmlText жирным шрифтом: как использовать TLFTextField и TextConverter? - PullRequest
0 голосов
/ 06 октября 2011

Я очень и очень долго застрял в этом вопросе, который уже много раз поднимался и обсуждался.Задача еще проста, и на самом деле она не должна занимать безумное количество времени, которое у нее уже есть: выделить несколько слов в текстовом поле встроенным шрифтом (отличным от Arial).

Тег bКажется, работает только при использовании шрифта, в котором Flash, кажется, изначально распознает жирный шрифт (Arial и т. д.), но я использую шрифт, который имеет 4 веса: обычный, средний, жирный и черный.Мне нужен черный вес для жирных слов в основном тексте среднего веса.

Я сделал буквально десятки тестов, все из которых были неудачными с использованием «классических» текстовых полей, встраивание шрифта один раз для каждого веса и использование htmlText: пробовал каждыйнастройка возможна в диалоге встраивания, с тегами b, span, em - с TextFormat (полужирный, шрифт) или StyleSheet (fontWeight, fontStyle, fontFamily) ...

Вывод: НЕТ способа установить 2 разныхвстроенные шрифты в одном textField.

Проблема, безусловно, связана с внедрением шрифтов, что подтверждается следующими функциями отладки:

/**
 *  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 раза, по одному на вес - и да: я назвал их осторожно и попытался экспортировать для actioncript, в DF3 и в DF4, а также без экспорта) и font = Maven Pro для всего textFieldэкземпляры на сцене, какой бы стиль не был применен к ним (также пытались оба выбрать встроенный шрифт - с * вконец - и системный шрифт).

Короче говоря, шрифт странный, но я ничего не могу с этим поделать.

Так что мой вопрос относится к новой платформе Text Layout Framework (TLFTextField): может ли это быть достигнуто с помощью этого?

Текст загружается из XML и содержит простые теги, такие как em, b и т. Д., Но переписать их в потоковые теги не вариант.

Я попробовал преобразование, доступное через класс TextConverter - как var tf:TextFlow = TextConverter.importToFlow(hyperText, TextConverter.TEXT_FIELD_HTML_FORMAT); - ср.http://help.adobe.com/en_US/as3/dev/WS14c3067b34b57c6d4a97343b122ab36a52f-7ffb.html#WS14c3067b34b57c6d4a97343b122ab36a52f-7ff9 - но я не понимаю , как стилизовать каждый тег и как применить TextFlow к текстовому полю TLF , уже добавленному вручную на этапе Flash?

1 Ответ

1 голос
/ 12 октября 2011

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

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

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

...