Регистрация шрифтов из загруженного swf
Следующая ситуация. Есть swf-загрузчик. Есть основная флешка и есть флешка со шрифтами. Последняя, состоит из шрифтов добавленных в библиотеку: Arial, ArialBold, ArialItalic ...
Нужно, загрузчиком подгрузить шрифты, потом подгрузить основную флешку. В основной флешке зарегистрировать загруженные шрифты.
Привожу частично код того, что я делаю для этого:
Код AS3:
fontLoader = new Loader();
fontLoader.contentLoaderInfo.addEventListener(Event.INIT, eventFontLoaderInit);
fontLoader.load(new URLRequest('fonts.swf'));
private function eventFontLoaderInit(e:Event):void
{
StaticFonts.Arial = fontLoader.contentLoaderInfo.applicationDomain.getDefinition("Arial") as Class;
StaticFonts.ArialBold = fontLoader.contentLoaderInfo.applicationDomain.getDefinition("ArialBold") as Class;
//и т.д.
mainLoader = new Loader();
mainLoader.contentLoaderInfo.addEventListener(Event.INIT, eventMainLoaderInit);
mainLoader.load(new URLRequest('main.swf'));
}//StaticFonts - класс со статическими переменными
private function eventMainLoaderInit(e:Event):void
{
addChild(LoaderInfo(e.target).content);
}
//В конструкторе главной флешки регистрирую загруженные шрифты. Добавляю тектовое поле и ставлю ему шрифт Arial. Результат - шрифт не отображается.
Font.registerFont(StaticFonts.Arial);
Font.registerFont(StaticFonts.ArialBold);
//...
trace(Font.enumerateFonts());//[object Arial],[object ArialBold]...
var tf:TextField = new TextField();
tf.embedFonts = true;
tf.text = 'Some text';
var f:TextFormat = new TextFormat();
f.size = 12;
f.font = 'Arial';
tf.setTextFormat(f);
addChild(tf);
|