Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.06.2012, 23:18
Monade 2 вне форума Посмотреть профиль Отправить личное сообщение для Monade 2 Найти все сообщения от Monade 2
  № 1  
Ответить с цитированием
Monade 2
 
Аватар для Monade 2

Регистрация: Apr 2011
Сообщений: 38
По умолчанию embed-шрифты в подгружаемых swf

здравствуйте, есть вопрос.

есть "главный" файл swf, который подгружает еще несколько флэшек. в них - динамические текстовые поля. чтобы применить к ним сглаживание текста, флэш настойчиво требует импортировать наверное эти шрифты, ну заэмбедить короче, не знаю как по-русски сказать.

в каждый файл пихать один и тот же шрифт, понятное дело, не с руки. есть ли способы импортировать шрифт один раз (в главный файл или в любой другой) и использовать его в подгружаемых?

заранее спасибо

Старый 23.06.2012, 00:34
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 2  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Можно. Эмбедите во флешку шрифт(ы) таким образом:
Код AS3:
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);
			}
		}
	}
 
}
Потом грузите её в ту флешку, где будете использовать шрифт таким образом:
Код AS3:
 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("Загрузка шрифтов не удалась");
		}
и все. А вообще вам надо было воспользоваться поиском по форуму таких тем тут много.

Старый 23.06.2012, 00:43
Monade 2 вне форума Посмотреть профиль Отправить личное сообщение для Monade 2 Найти все сообщения от Monade 2
  № 3  
Ответить с цитированием
Monade 2
 
Аватар для Monade 2

Регистрация: Apr 2011
Сообщений: 38
спасибо, попробую.

искал по тэгу embed, решения не нашел


Последний раз редактировалось Monade 2; 23.06.2012 в 00:46.
Старый 23.06.2012, 01:23
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вроде вопрос был с точностью до наоборот..
__________________
Reality.getBounds(this);

Старый 23.06.2012, 01:25
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 5  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Да точно :-) но это не сильно дело меняет)

Старый 23.06.2012, 02:29
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Просто правильный ответ: "Ничего не надо делать". Внедренные шрифты основной флэшки итак доступны в подгруженной.
Впрочем, возможно проблемы есть, когда текстовые поля создаются ручками в IDE, и надо как-то включить полю embedFonts = true и указать шрифт, при этом как-то избежать его внедрения))) Это в коде все просто...

Добавлено через 13 часов 47 минут
Хотя не, никаких проблем. Создал поле, дал имя "txt" и написал в кадре :
Код AS3:
import flash.text.TextFormat;
txt.embedFonts = true;
txt.defaultTextFormat = new TextFormat("Futura", 14, 0xFF0000);
txt.text = "wow, what a cute Font";
И поле прекрасно отобразило текст после загрузки во флэшку, в которой внедрен и зарегистрирован шрифт с именем "Futura".
__________________
Reality.getBounds(this);

Старый 25.06.2012, 21:21
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вероятно, набор флешек со шрифтами имеет смысл для выборочной загрузки.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 25.06.2012, 21:46
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Однозначно. Но иногда ситуация обратная — отдельные разделы или страницы сайта выполнены в виде подгружаемых модулей, и действительно нет никакого смысла внедрять в них тот же шрифт, что уже есть в базовом файле.
__________________
Reality.getBounds(this);

Старый 25.06.2012, 21:50
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Это очевидно. Этого нужно избегать.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
embed
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.