Я работаю над приложением, которое необходимо динамически загружать шрифты на основе шрифтов, используемых в данном документе, который открывается пользователем. Шрифты используются в RichEditableTextControl, поэтому они должны быть CFF-форматами.Встроенный шрифт из динамически загруженного swf не распознан
Если добавить код:
[Embed(source="/assets/fonts/AvenirLTStd Book.otf",
fontFamily="EmbedAvenir LT Std 45 Book",
mimeType="application/x-font",
embedAsCFF="true")]
public const embeddedFont:Class;
к главному SWF, то текст правильно отображается с встроенным шрифтом, но перемещение кода в отдельный файл и добавить загрузчик согласно информации, которую я нашел на следующая ссылка не загружает шрифт - http://www.scottgmorgan.com/blog/index.php/2007/06/18/runtime-font-embedding-in-as3-there-is-no-need-to-embed-the-entire-fontset-anymore/
код загрузчик:
private function loadFont(url:String):void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fontLoaded);
loader.load(new URLRequest(url));
}
private function fontLoaded(event:Event):void {
var FontLibrary:Class = event.target.applicationDomain.getDefinition("FontAvenirLTStd") as Class;
Font.registerFont(FontLibrary.embeddedFont);
}
Существует ошибка брошена на Font.registerFont
, чтобы сказать, что передаваемый параметр не может быть нулевым. Я проверил в режиме отладки, и проблема в том, что класс существует, но не имеет никакого содержимого. Класс FontLibrary создается, но единственная дочерняя запись в отладчике - это _prototype, поэтому попытка доступа к свойству embeddedFont
возвращает значение undefined.
На данный момент шрифт SWF находится в папке с активами основного проекта, поэтому я не верю, что должны быть какие-либо ограничения безопасности, и, как я уже сказал, загрузочная часть SWF работает.
Одна вещь, которая мешает моей диагностике, заключается в том, что я не уверен, что проблема заключается в том, что шрифт SWF не создается правильно и не имеет содержимого или основное приложение не может его загрузить. Любая помощь, по крайней мере, в том, чтобы сузить это, будет оценена по достоинству.
Я был бы признателен за всю помощь, которую я могу получить от этого, поскольку в течение некоторого времени я застрял в этой проблеме, и это ключевая часть приложения.
Заранее благодарен всем.