Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Подгрузка swf со шрифтами (http://www.flasher.ru/forum/showthread.php?t=163375)

Jitakuzu 08.08.2011 13:43

Подгрузка swf со шрифтами
 
Доброго времени суток

Подгружаю в AS3 проекте swf файл, который содержит EMBED шрифты:
Код AS3:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, fontLoaded);
loader.load(new URLRequest("MyTFT.swf"));
 
function fontLoaded(e:Event):void
{
        textField.embedFonts = true;
        textField.defaultTextFormat = new TextFormat("CloisterBlack", 60, 0x000000);
        textField.text = "Hello World";
}

MyTFT.swf содержит следующий код:
Код AS3:

[Embed(source='assets/CloisterBlack.ttf', fontName="CloisterBlack",
          mimeType="application/x-font", unicodeRange="U+0041-U+005A")]
var myFont:Class;
 
Font.registerFont(myFont);

В общем, все работает. Совершаю идентичные действия во Flex проекте - ничего не получается. Ошибок нет, просто текст не появляется. В чем может быть проблема?

ShockWave512 09.08.2011 01:57

- а шрифт вообще становится виден в проекте ? (Font.enumerateFonts(false))

- может не флекс не выполняет Font.registerFont(myFont);, кто его запускает?

- может имя "CloisterBlack" перестает видеть внутри флекс окружения?

Jitakuzu 09.08.2011 11:44

По какой то причине текст вообще не отображается. Соответственно, шрифт подгружается, но текст не выводится по какой то причине. Текст вывожу на английском языке.

alatar 09.08.2011 11:48

Jitakuzu, что вы пишете во флекс-проекте?

ShockWave512 09.08.2011 11:48

то есть три вопроса в игнор? удобно :)

Jitakuzu 09.08.2011 11:51

Да, после некоторых манипуляция начало появляться предупреждение в окне вывода:
Предупреждение: несовместимый встроенный шрифт "CloisterBlack" указан для mx.controls::Text (Text7) . Для этого компонента требуется объявление встроенного шрифта посредством embedAsCff=false.
Как использовать embedAsCff?

alatar 09.08.2011 11:56

TextField не может работать с cff, этот параметр предназначен для встраивания шрифтов используемых в новом текстовом FTE. Для шрифтов используемых в TextField он всегда должен быть false.

Jitakuzu 09.08.2011 12:01

ShockWave512, извиняюсь, сейчас попробую ответить:
1. Все что могу получить при выводе, это единственный шрифт [object MainTimeline_myFont], скорее всего это он, так как других не подгружаю. Как получить его имя из объекта я не знаю
2. Шрифт регистрируется в MyTFT.swf
3. Если объявить TextFormat со шрифтом CloisterBlack, то текст не выводится вовсе. Если указать несуществующий шрифт (например, CloisterBla123ck), то текст выводится в стандартном шрифте. Мне этого подсказывает о том, что шрифт все таки виден

Добавлено через 1 минуту
alatar, так что мне написать то? и где? Подскажи.
P.S. ShockWave512 мне это писал =)

alatar 09.08.2011 12:03

Код AS3:

[Embed(source='assets/CloisterBlack.ttf', fontName="CloisterBlack",
          mimeType="application/x-font", unicodeRange="U+0041-U+005A", embedAsCff="false")]


Jitakuzu 09.08.2011 12:10

Все сделал, trace(Font.enumerateFonts(false)) выводит [object CloisterBlack].
То есть, шрифт подгружается, но
Код AS3:

sometext.text = "new text";
sometext.setStyle("fontFamily", "CloisterBlack");

Выводится на стандартном шрифте, а не на том что нужно. Спасите, помогите кто нибудь, я уже измучился с этой задачей...


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

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