|
|
|||||
Регистрация: Apr 2011
Сообщений: 38
|
embed-шрифты в подгружаемых swf
здравствуйте, есть вопрос.
есть "главный" файл swf, который подгружает еще несколько флэшек. в них - динамические текстовые поля. чтобы применить к ним сглаживание текста, флэш настойчиво требует импортировать наверное эти шрифты, ну заэмбедить короче, не знаю как по-русски сказать. в каждый файл пихать один и тот же шрифт, понятное дело, не с руки. есть ли способы импортировать шрифт один раз (в главный файл или в любой другой) и использовать его в подгружаемых? заранее спасибо |
|
|||||
Можно. Эмбедите во флешку шрифт(ы) таким образом:
package { import flash.display.MovieClip; import flash.system.ApplicationDomain; public class Agfriquer extends MovieClip { [Embed(source = "AG Friquer/AGFriquerC.otf", fontName="AGFriquerC", fontStyle="normal", fontWeight="normal", mimeType="application/x-font", advancedAntiAliasing="true", embedAsCFF="false")] public var AGFriquerC:Class; [Embed(source = "AG Friquer/AGFriquerC-Bold.otf", fontName="AGFriquerC", fontStyle="normal", fontWeight="bold", mimeType="application/x-font", advancedAntiAliasing="true", embedAsCFF="false")] public var AGFriquerCBold:Class; [Embed(source = "AG Friquer/AGFriquerC-Italic.otf", fontName="AGFriquerC", fontStyle="italic", fontWeight="normal", mimeType="application/x-font", advancedAntiAliasing="true", embedAsCFF="false")] public var AGFriquerCItalic:Class; [Embed(source = "AG Friquer/AGFriquerC-BoldItalic.otf", fontName="AGFriquerC", fontStyle="italic", fontWeight="bold", mimeType="application/x-font", advancedAntiAliasing="true", embedAsCFF="false")] public var AGFriquerCBoldItalic:Class; public function Agfriquer() { Font.registerFont (AGFriquerC); Font.registerFont (AGFriquerCBold); Font.registerFont (AGFriquerCItalic); Font.registerFont (AGFriquerCBoldItalic); var embeddedFonts:Array = Font.enumerateFonts(false); for (var i : int = 0; i < embeddedFonts.length; i++) { trace(embeddedFonts[i].fontName); trace(embeddedFonts[i].fontType); } } } } var fontsLoader:Loader = new Loader (); fontsLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, fontLoaded); fontsLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOERROR); var context:LoaderContext = new LoaderContext(); context.applicationDomain = ApplicationDomain.currentDomain; fontsLoader.load(new URLRequest(path), context); private function fontLoaded(ev:Event):void // срабатывает при загрузке swf со шрифтом { var target:LoaderInfo = ev.target as LoaderInfo; var mc:MovieClip = target.content as MovieClip; addChild(mc); } private function onIOERROR(e:IOErrorEvent):void { trace("Загрузка шрифтов не удалась"); } |
|
|||||
Регистрация: Apr 2011
Сообщений: 38
|
спасибо, попробую.
искал по тэгу embed, решения не нашел Последний раз редактировалось Monade 2; 23.06.2012 в 00:46. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вроде вопрос был с точностью до наоборот..
__________________
Reality.getBounds(this); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Просто правильный ответ: "Ничего не надо делать". Внедренные шрифты основной флэшки итак доступны в подгруженной.
Впрочем, возможно проблемы есть, когда текстовые поля создаются ручками в IDE, и надо как-то включить полю embedFonts = true и указать шрифт, при этом как-то избежать его внедрения))) Это в коде все просто... Добавлено через 13 часов 47 минут Хотя не, никаких проблем. Создал поле, дал имя "txt" и написал в кадре : И поле прекрасно отобразило текст после загрузки во флэшку, в которой внедрен и зарегистрирован шрифт с именем "Futura".
__________________
Reality.getBounds(this); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Однозначно. Но иногда ситуация обратная — отдельные разделы или страницы сайта выполнены в виде подгружаемых модулей, и действительно нет никакого смысла внедрять в них тот же шрифт, что уже есть в базовом файле.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 20:34. |
|
« Предыдущая тема | Следующая тема » |
Теги |
embed |
|
|