PDA

Просмотр полной версии : то ли setNewTextFormat, то ли embedFonts?


FFfsam
02.07.2007, 13:07
Доброго дня всем!
Не могу понять, в чем проблема. Есть текстовое поле "field_text". Формат его текста и сам текст берутся из внешнего XML. Плюс мне нужно задавать прозрачность этому полю. Делаю так:
var format_text:TextFormat = new TextFormat();
format_text.font = "Arial Cyr";
format_text.size = 24;
format_text.color = 0x000000;
format_text.bold = true
format_text.italic = true;
format_text.underline = false;
format_text.align = "left";
field_text.autoSize = true;
field_text.setNewTextFormat(format_text);
field_text.text = "test text";
Данные здесь для примера забиты ручками.
Шрифты не подгружаю - прозрачность соответственно не работает.
field_text._alpha = 50;
Знаю, чтоб заработала прозрачность шрифты нужно подгрузить:
field_text.embedFonts = true;
Проблема в том, что когда я Ембедю шрифт так как показано выше, или в настройках текстового поля, надпись на текстовом поле вообще пропадает.
Если заремить //field_text.setNewTextFormat(format_text);
то прозрачность у текстового поля появляется, но шрифт не выглядит так как должен выглядеть. Что делать?
Буду очень благодарен за ответы.

etc
02.07.2007, 13:18
А в само поле зашить шрифт забыли?

FFfsam
02.07.2007, 13:28
Это как? По кнопочке [Embed...]? Я там выбираю "All" - но результат такой же - в текстовом поле ничего не отображается.

chingachgoog
02.07.2007, 13:37
Потомучто эмбедить надо то, что хочется увидеть: в данном случае начертания болд, болд-италик.

Kikasso
02.07.2007, 13:44
Это как? По кнопочке [Embed...]? Я там выбираю "All" - но результат такой же - в текстовом поле ничего не отображается.
Поставьте галочку "generate size report" в file -> publish settings -> flash
Тут и узнаете, что такое это "All"

FFfsam
02.07.2007, 14:28
Kikasso, посмотрел report, много лишнего.
chingachgoog, как это указать?
я сделал следущим образом:
создал в библиотеке New Font, указал, что он и Болд и Италик. Потом format_text.font = "font_1";так заработало. А можно, чтоб без создавания Фонта в библиотеке? Чтобы можно было написать format_text.font = "Arial Cyr"; и все работало?

†‡Paladin‡†
02.07.2007, 14:41
Какойто гемор с этими шрифтами. За неделю это уже 5й подобный вопрос который мне встречался.

chingachgoog
02.07.2007, 14:58
создал в библиотеке New Font, указал, что он и Болд и Италик.


Нет, не так.
Для того чтобы писать так:


Чтобы можно было написать format_text.font = "Arial Cyr"; и все работало?

в библиотеке никаких фонтов создавать не надо.
все делать на рабочем столе, в динамическом поле есть кнопка Эмбед, во ее и тыкать :)
Если поле создается программно, то сделать ручками динамическое поле где-нибудь за экраном и эмбедить опять-таки ручками шрифт туда. Сколько начертаний шрифта, столько полей с эмбедом и надо делать.

FFfsam
02.07.2007, 17:32
Спасибо!
Теперь все понятно!

FFfsam
02.07.2007, 17:53
А можно еще спросить? Немного не по теме, но в ее продолжение.
Как можно извне подгрузить шрифт и так, чтоб он использовался в основной флэшке и был "embedFonts = true"?
Я создал еще одну флэшку - "font.swf", в ней текстовое поле "field". В него я включил шрифт "Arial" через кнопку "Embed...". Загружаю вторую флэшку в основную с помошью "loadMovie". Далее пишу:
var ft:TextFormat = new TextFormat();
ft = field.getNewTextFormat();
format_text.font = ft.font;
Ожидал, что текст в field_text, которому применяется format_text, станет шрифтом "Arial". Ожидания не оправдялись.
Что я делаю не так? Как вообще загрузить шрифт из другой флэшки, если имя шрифта заранее не известно?

etc
02.07.2007, 18:07
Нужно использовать Shared-библиотеки. Информация по этому есть на форуме.

chingachgoog
02.07.2007, 18:10
флеш почему-то использует внедренный шрифт только в том мувике, в который он был внедрен. Родительский или дочерний мувик (после подгрузки) просто так не смогут воспользоваться им.
Можно поступить так: в один мувик (swf-ку) загрузить символ-мувик с внедренным шрифтом и поставить экспорт для расшаренной библиотеки.
А в других мувиках, использовать этот же символ с галкой импорт.