|
|
|||||
Грузим FontFamily из отдельного swf
Здравствуйте.
Имеем отдельную swf с кодом package me.inpictures.data { import flash.text.Font; import flash.text.TextField; import flash.text.TextFormat; import flash.display.Sprite; public class FontEmbed extends Sprite{ /* REGULAR */ [Embed(source="../../../lib/MyriadPro-Regular.otf" ,fontFamily= 'MB' ,fontStyle = 'normal' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static var Myriad2Pro:Class; /* BOLD */ [Embed(source="../../../lib/MyriadPro-Bold.otf" ,fontFamily= 'MB' ,fontStyle = 'normal' ,fontWeight = 'bold' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static var Myriad2ProBold:Class; /* ITALIC */ [Embed(source="../../../lib/MyriadPro-It.otf" ,fontFamily='MB' ,fontStyle = 'italic' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static var Myriad2ProIT:Class;/*!!!*/ /* BOLD + ITALIC */ [Embed(source="../../../lib/MyriadPro-BoldIt.otf" ,fontFamily= 'MB' ,fontStyle = 'italic' ,fontWeight = 'bold' ,mimeType= 'application/x-font' ,embedAsCFF = 'false' )] public static var Myriad2ProBoldIT:Class; /* CONDENSED */ [Embed(source="../../../lib/MyriadPro-Cond.otf" ,fontFamily="MC" ,fontStyle = 'normal' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static var Myriad2ProC:Class; /* CONDENSED BOLD */ [Embed(source="../../../lib/MyriadPro-BoldCond.otf" ,fontFamily= 'MC' ,fontStyle = 'normal' ,fontWeight = 'bold' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static var Myriad2ProCondBold:Class; /* CONDENSED ITALIC */ [Embed(source="../../../lib/MyriadPro-CondIt.otf" ,fontFamily='MC' ,fontStyle = 'italic' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static var Myriad2ProCondIT:Class;/*!!!*/ /* CONDENSED BOLD + ITALIC */ [Embed(source="../../../lib/MyriadPro-BoldCondIt.otf" ,fontFamily= 'MC' ,fontStyle = 'italic' ,fontWeight = 'bold' ,mimeType= 'application/x-font' ,embedAsCFF = 'false' )] public static var Myriad2ProCondBoldIT:Class; public function FontEmbed() { } public static function setStyle(textField:TextField, fontName:String, size:uint=16):void { textField.embedFonts = true; textField.defaultTextFormat = new TextFormat(fontName); } private function fontInit():void { var _arr :Array = Font.enumerateFonts(); for each( var i:Font in _arr){ trace(i.fontName); } } } } Пробую заатачить через загрузку _loader = new Loader(); var urlRequest:URLRequest = new URLRequest("http:/site.dom/app/font/MyriadPro.swf?"+Math.random()); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, _loader_onIoError); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _loader_onComplete); _loader.load(urlRequest); } protected function _loader_onIoError(event:IOErrorEvent):void { _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, _loader_onIoError); trace("failed to load the .swf file"); } protected function _loader_onComplete(event:Event):void { _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, _loader_onComplete); _fontLibrary = event.target.applicationDomain.getDefinition("me.inpictures.data.FontEmbed_Myriad2Pro") as Class; traceFontRegister(); Font.registerFont(_fontLibrary); } Цитата:
_fontLibrary = event.target.applicationDomain.getDefinition("me.inpictures.data.FontEmbed.Myriad2Pro") as Class; ReferenceError: Error #1065: Переменная Myriad2Pro не определена. at flash.system::ApplicationDomain/getDefinition() at me.inpictures.data::DynamicFont/_loader_onComplete() Добавлено через 19 минут
__________________
return this... Последний раз редактировалось AlexCooper; 16.10.2013 в 17:37. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Может все-таки так?
_fontLibrary = event.target.applicationDomain.getDefinition("me.inpictures.data::FontEmbed")["Myriad2Pro"] as Class; _fontLibrary = event.target.applicationDomain.getDefinition("FontEmbed_Myriad2Pro") as Class; Во втором случае Вы обращаетесь к классу-ассету из библиотеки, который не принадлежит никакому пакету. При чем тут me.inpictures.data?
__________________
Reality.getBounds(this); |
|
|||||
Цитата:
Цитата:
Добавлено через 2 минуты Цитата:
Цитата:
Пока что получилось сделать через фабрику на удалённом swf. Но всё же как зарегистрировать шрифт
__________________
return this... |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
У меня локально работает и Ваш первый вариант, и мой первый. Так что проблема, видимо, в доменах.
Эту тему перечитывали?
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 16.10.2013 в 19:55. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Поделитесь решением со всеми и Вам тоже будет спасибо))
__________________
Reality.getBounds(this); |
|
|||||
__________________
return this... |
Часовой пояс GMT +4, время: 23:30. |
|
« Предыдущая тема | Следующая тема » |
|
|