Показать сообщение отдельно
Старый 21.10.2011, 14:35
smithy вне форума Посмотреть профиль Отправить личное сообщение для smithy Найти все сообщения от smithy
  № 36  
Ответить с цитированием
smithy

Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
Можно делать так:
в Flash внедрить шрифты, экспортировать каждый по 2 раза, наследуя от mx.core.FontAsset и flash.text.Font, называя соответственно "MyFontFlex" и "MyFont"

Пытаемся зарегистрировать сначала один, в случае неудачи второй:
Код AS3:
var fontClass:Class;
var fontName:String= "MyFont";
var domain:ApplicationDomain= ...; // домен, в который загружена swf со шрифтами
 
fontClass = domain.getDefinition( fontName ) as Class;
 
try
{
	Font.registerFont( fontClass );
}
	// не удалось зарегистрировать
catch( error:Error )
{
	fontClass = domain.getDefinition( fontName + "Flex" ) as Class;
	try
	{
		Font.registerFont( fontClass );
	}
		// и тут не удалось зарегистрировать
	catch ( error:Error )
	{
 
	}
}
И если я все правильно помню, то если swf со шрифтами грузится локальной swfкой, то зарегистрируется шрифт MyFontFlex. В противном случае надо грузить swf со шрифтами с контекстом
Код AS3:
new LoaderContext( true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain )
и тогда зарегистрируется MyFont.