Текстовый формат AS3, встроенные шрифты и несколько шрифтов?

Вот моя проблема: у меня есть динамическое текстовое поле html, в которое я передал текст html / текстовый формат, например:

<P ALIGN="LEFT"><FONT FACE="Trebuchet MS" SIZE="14" COLOR="#000000" LETTERSPACING="0" KERNING="0">Some text<B>some bold text</B><I><U>and some italic underline</U></I></FONT></P>

Моя проблема в том, что я не могу использовать встроенные шрифты, потому что если я это сделаю и использую, например, Trebuchet MS, жирный тег никогда не будет отображаться, поскольку во флэш-памяти вы должны выбрать, жирный шрифт, который вы вставляете, или нет. Я пытаюсь избежать преобразования всего htmltext / textformat в CSS.

Любые идеи?


person Eric    schedule 02.12.2011    source источник
comment
Может быть, мне следует добавить, что этот фрагмент html-текста создается из текстового редактора, который я закодировал в AS3 с использованием класса textformat. Но чтобы использовать встроенные шрифты, мне нужно использовать CSS во Flash. Я просто ищу лучший способ преобразовать такие HTML-данные в CSS.   -  person Eric    schedule 03.12.2011


Ответы (1)


Вам необходимо убедиться, что все версии шрифта (обычный, полужирный, курсив и т. Д.) Скомпилированы в SWF.

Легкий способ сделать это - создать несколько динамических текстовых полей (по одному для каждой версии шрифта, который вы хотите встроить) и разместить их на сцене где-нибудь вне поля зрения в начале вашего фильма (например, на корневой шкале времени, кадр 1 , при x = -100). Убедитесь, что они появляются в вашем фильме перед отображением остального текста, и убедитесь, что вы встраиваете соответствующие диапазоны символов.

Это заставляет Flash компилировать все версии шрифта, а не только ту версию, которая у вас есть в вашем фактическом текстовом поле, которое вы хотите отобразить.

person Jed Richards    schedule 02.12.2011
comment
Не думаю, что вы понимаете суть проблемы, но все равно спасибо за попытку. Проблема в том, что ‹FONT FACE = Trebuchet MS - это общее имя универсального шрифта. Мои встроенные шрифты не называются Trebuchet MS, а называются обычными и полужирными. Я пытаюсь не просматривать свой htmltext и заменять ‹FONT FACE = Trebuchet MS на‹ FONT FACE = normal в любом случае, я не думаю, что это сработает ... - person Eric; 02.12.2011
comment
Я прекрасно понимаю суть вопроса. И мой ответ точно решает вашу проблему :) Вам нужно убедиться, что все версии / веса Trebuchet MS встроены в ваш SWF. Как только они появятся, вы можете оставить FACE="Trebuchet MS" как есть в вашем HTML, и тогда всякий раз, когда вы используете тег <b>, Flash будет достаточно умен, чтобы использовать жирную версию шрифта. Я использовал этот точный подход бесчисленное количество раз в каждом проекте Flash, который я делал за последние 10 лет. Извинения за некромантию! - person Jed Richards; 19.09.2012