|
|
|||||
Регистрация: Nov 2009
Сообщений: 11
|
Так как все таки встраивать шрифты?
Добрый день читатели и отвечатели этого форума.
Я начинающий программер. на днях столкнулся с проблеммой добавления своих шрифтов в проэкт. Перелопатил весь поиск форума и поиск гугла. так ничего и не понял, только запутался. перепробовал все что предлагали - ничего не получилось. 1. пробовал через библиотеку. т.е. new Font ->linkage properties-> export for actionscript результата ноль. +читал что это очень плохо и все дела... 2. пробовал [Embed... разными способами. хз толь не туда вставляю толи что то не так пишу - не высвечивается. 3. пробовал через текстовое поле(но если шрифта в библиотеке нет то кнопа ембед не появляется и возник вопрос почему это не через библиотеку???) - тоже ничего не вышло. и везде пишут типа "так не правильно", а как правильно не пишет никто. в общем я в отчаянии. напишите пожалуйста как для "барана". как встраивать шрифты? по шагам? какие есть способы? и как ими пользоватся? спасибо. извините за повторение уже обсужденного вопроса. Юзаю Abode Flash CS4 |
|
|||||
так попробуйте
package { import flash.display.*; import flash.text.* /** * ... * @author http://www.murmadillo.tut.su/ */ public class DocFontUse extends Sprite { [Embed(source='ACADEMY.TTF', fontName='vampire_ttf')] public static var Geisha_ttf:Class; /*[Embed(source = 'C:/WINDOWS/Fonts/GARA.TTF', fontName = '_Garamond')] public var _Garamond:Class; */ public function DocFontUse() { //смотрим все фонты //var allFonts:Array = Font.enumerateFonts(true); //allFonts.sortOn("fontName", Array.CASEINSENSITIVE); Font.registerFont(Geisha_ttf); //смотрим ембеденные фонты var embeddedFonts:Array = Font.enumerateFonts(false); //embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE); trace(embeddedFonts); //trace показывает //object Font],[object DocFontUse_Geisha_ttf] var font:DocFontUse_Geisha_ttf = new DocFontUse_Geisha_ttf(); var txt_fmt:TextFormat=new TextFormat(); txt_fmt.font=font.fontName; txt_fmt.size = 25; var txt:TextField=new TextField(); txt.autoSize=TextFieldAutoSize.LEFT; txt.defaultTextFormat=txt_fmt; txt.embedFonts=true txt.htmlText ='Меню Reset'; txt.selectable = true; txt.rotation = 45; txt.x = 100; txt.y = 100; addChild(txt); } } }
__________________
Гоночка |
|
|||||
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
добавляете ручками текстовое поле, в нем че-нить пишете необходимым шрифтом.
В свойствах этого текстового поля ставим динамик текст, а в характер эмбединг - выбираем необходимые для внедрения символы. Далее в скрипте, для програмного текстового поля ставим этот шрифт и ембедФонтс=тру. |
|
|||||
Регистрация: Nov 2009
Сообщений: 11
|
Alex Lexcuk
На строке мне выдавало ошибку: попытка использовать не объявленный класс. и откуда берется DocFontUse_Geisha_ttf??? GFreemen пасиба, помог. тока еще один вопрос. шрифт большой затирается немного. можно полечить? |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Товарищ murmadillo слегка перемудрил как мне кажется. Я обычно вставляю так:
//// EMBED FONT FILE [Embed(source='../../../../../../lib/obla.ttf', fontName='obla', mimeType='application/x-font-truetype')] public var OblaFont:Class;
__________________
Reality.getBounds(this); |
|
|||||
Цитата:
что я дал и просто попробовать, если у вас Font.registerFont(Geisha_ttf) выдал ошибку, то это просто катастрофа..., а DocFontUse_Geisha_ttf берется, как я уже и писал его показывает trace, если мой компилятор так встраивает шрифты, то что я могу.
__________________
Гоночка |
|
|||||
Регистрация: Aug 2013
Сообщений: 2
|
Решено!
Специально зарегистрировался чтобы поделиться находкой с сообществом.
После долгих мытарств найдено на просторах англицких форумов следующее решение: [Embed(source="SomeFont.ttf", fontName="sfont", embedAsCFF="false")] public var someFont:Class; Судя по всему, глюк чисто FlashDevelop, его версия компилятора "ду сомфинг рон" . Этот false "правит" баг в FlashDevelop, после этого все работает! Спасибо flasher.ru и лично mooncar за быстрое решение проблемы с публикацией поста! |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Три года назад не было никакого CFF.
И никакого глюка, никакого бага в FD нет. Формат CFF появился вместе с TLF и FTE, а вместе с ним и обязательная опция в [Embed] для компилятора.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Aug 2013
Сообщений: 2
|
Простите, это все мой малый опыт разработки на AS3, на форуме решения не нашел, специально поднял ветку адобовского форума где нашел : тут пишут в частности:
"just add this in the embed tag and it works fine! All the script was correct! embedAsCFF="false" [Embed(source="c:/windows/fonts/verdana.ttf", fontFamily="Verdana", embedAsCFF="false")]" и сразу за ним ответ: "Oh, I see. This is SDK issue. You didn't have to do that in versions prior to 4. I am using 3.5" Да, не FD ошибка, тут я подзабыл, просто в ветке о нем упоминалось. Что вижу то пою, мне помогло, в других вариациях не срабатывало, данного решения не нашел более нигде, возможно плохо искал, если это поможет кому-то, и то хорошо. За наводку с TLF спасибо, прочел. PS: дата публикации на адоб форуме Nov 15, 2010, что примерно 3 года назад и есть. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Угу, а эта тема от 3 января. Почти год разницы. Но дело даже не в этом — три года это неслабый срок для флэш-плеера, а для форума и подавно. Сейчас про embedAsCFF каждый ребенок знает — уже "примерно 3 года" без этого аттрибута шрифт в проект вкомпиливается как CFF по-умолчанию, а TLF до сих пор пользуются единицы.
Не надо таких некропостингов впредь, хорошо? )) И добро пожаловать.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 09:35. |
|
« Предыдущая тема | Следующая тема » |
Теги |
embedfonts , sharedFonts , встроеные шрифты |
|
|