Невозможно вставить несколько шрифтов и использовать их в одном текстовом поле - cs5, as3 - PullRequest
0 голосов
/ 02 августа 2011

возникли проблемы с работой встроенных шрифтов.Несоответствие с этим сводит меня с ума.Я заставил это работать раньше, но не с тех пор, как перешел на cs5.

Моя установка выглядит следующим образом:

У меня на сцене динамическое текстовое поле с именем "tf".

Следующий код заполняет текстовое поле и пытается ввести одно слово «любовь» в предложении другим шрифтом.

_style = new StyleSheet();

var styleObj  = new Object();
styleObj.color = '#FF0000';
styleObj.fontFamily = 'Futura Bold Oblique';

_style.setStyle('.otherText', styleObj);
tf.styleSheet = _style;
tf.htmlText = 'I <span class="otherText">love</span> it when stuff works!';

Шрифт встроен и настроен на экспорт для ActionScript с именем экспорта font1 .Слово «любовь», которое должно отображаться как шрифт Futura Bold Oblique , просто исчезает.Не имеет значения, если я использую экранное имя шрифта, указанное на панели свойств для этого шрифта, или если я использую имя экземпляра экспорта, которое я ему дал.

Мое предложение выглядит так: Я понимаю, когда все работает! Как видите, "любовь" ушла.Давай люди, покажи мне немного любви!lol.

У всех есть идеи, почему это не работает.Это очень важно для моей ежедневной работы и сводит меня с ума!Спасибо!

С момента публикации я играю с этим, надеясь, что, возможно, именно этот шрифт вызывал проблему, но это не шрифт.Я попытался использовать разные стили Helvetica Neue как отдельно встроенные шрифты и получил тот же результат.

1 Ответ

1 голос
/ 02 августа 2011

Исправлено, вроде. используя enumerateFonts . Здесь перечислены имена шрифтов в том виде, в каком их видит Flash. Скопируйте и вставьте из окна вывода и используйте его для свойства таблицы стилей fontFamily . По-прежнему кажется, что Flash думает, что некоторые разные стили из одного семейства, такие как Futura Bold и Futura Bold Oblique , являются одинаковыми; в моем случае это перечислило их обоих как Книга Футуры . Для того, чтобы получить текст Oblique, мне пришлось встроить две отдельные версии шрифта, Futura и Futura BT .

private function getFontNames():void
{
    var fontArray:Array = Font.enumerateFonts(false);
    fontArray.sortOn("fontName", Array.CASEINSENSITIVE);

    for(var i:int = 0; i<fontArray.length; i++)
    {
        trace(fontArray[i].fontName);
    }
}
...