Как мы можем заставить текст BOLD работать в классическом динамическом тексте (встроенный шрифт) во Flash CS5? - PullRequest
1 голос
/ 10 апреля 2011

Несмотря на то, что я встроил Verdana Bold, он не выглядит жирным. Это раньше работало в CS4. Все шрифты экспортируются для ActionScript с использованием классических текстовых контуров. Шрифты в FLA - это классический динамический текст.

Я могу заставить это работать со шрифтами TLF. Это не вопрос о шрифтах TLF. Я не хочу использовать их, потому что они добавляют много ненужного раздувания к размеру файла.

Я встроил шрифты. HTML-текст отсутствует, и текстовые поля не генерируются AS - они физически находятся на сцене. Есть четыре отдельных текстовых поля, в противном случае все они работают просто отлично. Все это также отлично работает, если я использую Device Fonts.

У меня есть загруженный файл XML, подающий текст в несколько текстовых полей различного формата. Каждый из них имеет правильно встроенный шрифт.

Все работает нормально, кроме ... BOLD. У меня есть встроенный шрифт Verdana Bold, который я проверял в любом случае, но текст в поле отображается как обычный вес.

Я использую классический динамический текст во Flash CS5 (AS3) в Mac OS.

Это просто ошибка, которую нельзя исправить?

Я вынужден написать TextFormat, даже если поле находится на сцене?

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

Самый простой способ - отключить опцию «Auto Kern». Теперь вновь заданный текст сохранит свое «жирное» форматирование.

1 голос
/ 20 апреля 2011

Попробуй это. Вы упомянули, что вы не создаете TF динамически, поэтому на всех TF установите их жирным шрифтом и убедитесь, что они установлены для встраивания шрифтов. Используйте текстовый формат, как обычно, и любой текстовый формат, который вы установили жирным шрифтом, будет выделен жирным шрифтом, а тот, который установлен жирным шрифтом = false, не будет. Возможно, есть лучший способ сделать это, возможно, создать TF динамически, но это должно сработать.

var norm = new TextFormat("Verdana", 12, 0x000000, false, false);
var bold = new TextFormat("Verdana", 14, 0x000000, true, false);

norm_txt.setTextFormat(norm);
bold_txt.setTextFormat(bold);
...