|
|
|||||
Внедрение шрифта
Внедряю шрифт через один класс, использую его в классе, содержащем static константы,
Далее передаю через метод текстовые форматы в класс, поле не отображается. В классе создается новое поле ему задается формат. Причем в другом классе, подгружаю swf'ку, использую этот же текстовый формат, текст отображается. Использую SDK 4.6, в Embed шрифта стоит параметр embedAsCFF = 'false'. Вообщем вот: [Embed(source = "../../fonts/verdana.ttf", embedAsCFF = 'false', fontName = "verdana", fontStyle = "regular", fontWeight = "normal", mimeType = "application/x-font-truetype")] private const VERDANA_NORMAL:Class; public class TextFormatManager { public static const textHint:TextFormat = new TextFormat(EmbedFont.VERDANA, 14, 0xffce60, false, false, false, null, null, TextFormatAlign.CENTER); } Подскажите какие могут быть причины. |
|
|||||
Вообще класс выглядит так и не работает.. точнее не везде работает.
public class EmbedFont extends Sprite { public static const VERDANA:String = "verdana"; //normal [Embed(source = "../../fonts/verdana.ttf", embedAsCFF = 'false', fontName = "verdana", fontStyle = "regular", fontWeight = "normal", mimeType = "application/x-font-truetype")] private const VERDANA_NORMAL:Class; //bold [Embed(source = "../../fonts/verdanab.ttf", embedAsCFF = 'false', fontName = "verdana", fontStyle = "regular", fontWeight = "bold", mimeType = "application/x-font-truetype")] private const VERDANA_BOLD:Class; //italic [Embed(source = "../../fonts/verdanai.ttf", embedAsCFF='false', fontName = "verdana", fontStyle = "italic", fontWeight = "nolmal", mimeType = "application/x-font-truetype")] private const VERDANA_ITALIC:Class; //bold/italic [Embed(source = "../../fonts/verdanaz.ttf", embedAsCFF='false', fontName = "verdana", fontStyle = "italic", fontWeight = "bold", mimeType = "application/x-font-truetype")] private const VERDANA_BOLD_ITALIC:Class; public function EmbedFont() { Font.registerFont(VERDANA_NORMAL); Font.registerFont(VERDANA_BOLD); Font.registerFont(VERDANA_ITALIC); Font.registerFont(VERDANA_BOLD_ITALIC); } } Добавлено через 40 минут Вообщем сделал такой тест: public function setTextFormats(upFormat:TextFormat, overFormat:TextFormat):void { _upField.embedFonts = true; _upField.defaultTextFormat = upFormat; _overField.embedFonts = true; _overField.defaultTextFormat = overFormat; trace(TextField.isFontCompatible(EmbedFont.VERDANA, FontStyle.REGULAR)); var embeddedFonts : Array = Font.enumerateFonts(false); embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE); trace("\n----- Enumerate Fonts -----"); for(var i : int = 0;i < embeddedFonts.length;i++) { trace(embeddedFonts[i].fontName); trace(embeddedFonts[i].fontType); } } true ----- Enumerate Fonts ----- verdana embedded verdana embedded verdana embedded verdana embedded verdana embedded verdana embedded verdana embedded verdana embedded Поле добавлено на сцену, но то поле, что добавлено в скаченную swf'ку не видно, а для того, что уже есть в классе применяется и отображается. Последний раз редактировалось FriOne; 08.03.2012 в 18:00. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Добавлено через 2 минуты И да, нет смысла постить код который работает и трейсы, показывающие что все ок. Вы не на экзамене. Вам нужно, чтобы ошибка была найдена, а не наоборот.
__________________
Reality.getBounds(this); |
|
|||||
Вообщем, мне нужно, чтобы поле отобразилось)
У меня есть класс TextButton, в нем текстовое поле, я передаю туда текстовый формат и ставлю embed Fonts true. Шрифт как я понял встаривается, но поле не отображается, Порылся по статьям, нашел про applicationDomain, но не особо понимаю как это работает. Вопрос теперь наверно стоит так, может ли повлиять домен на отображение поля? И как проверить влияет ли домен на это? Добавлено через 1 минуту Я гружу из swf'ки класс, текстовое поле в нем принимает мой формат и отображается, Но я создаю TextButton в этом классе(экземпляре класса), передаю формат и оно не отображается. Последний раз редактировалось FriOne; 08.03.2012 в 20:11. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Уточните.
Цитата:
Далее - в этом классе создается текстФилд, который отображает шрифт, внедренный в текущем свф. Но создаваемый в этом экземпляре буттон не показывает в своем лейбел этот внедренный шрифт? p.S. Бердск? Привет, земляк))))
__________________
Reality.getBounds(this); |
|
|||||
Эм.. запутался) Гружу свф, в нем мувик вообщем,
в этом мувике текстовое поле, которое принимает формат, в этот же мувик я добавляю textButton. Текущая свф - та что главная? Юзаю, готовый класс загрузчик, так что куда что он грузит мало понимаю) P.S. Дааа! Привет!!)) |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Сам Класс TextButton находится в главной флэшке? Шрифт внедрен в главную флэшку? Экземпляр TextButton создается в главной флэшке и потом помещается в загруженную? ИЛИ Сам Класс TextButton находится в загружаемой флэшке? Экземпляр создается и размещается в загружаемой флэшке, но пытается использовать шрифт, который внедрен в главную флэшку? Попробуй такими словами рассказать))
__________________
Reality.getBounds(this); |
|
|||||
Рад что проблема все таки в этом)
Объект EmbedFont создается в main, там создается загрузчик, грузит, тут же в main делю полученный мувик, отдаю однин мувик в класс Preloader, этот мувик и есть тот в который я сую TextButton и в котором находится поле, в котором отображается текст. Загрузчик какой-то замудренный.. есть такой коммент там, незнаю, мб прояснит что-то: |
Часовой пояс GMT +4, время: 01:39. |
|
« Предыдущая тема | Следующая тема » |
Теги |
developer , внедрение , фрифты |
|
|