Просмотр полной версии : Подгрузка swf со шрифтами
Jitakuzu
08.08.2011, 13:43
Доброго времени суток
Подгружаю в AS3 проекте swf файл, который содержит EMBED шрифты:
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 содержит следующий код:
[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
По какой то причине текст вообще не отображается. Соответственно, шрифт подгружается, но текст не выводится по какой то причине. Текст вывожу на английском языке.
Jitakuzu, что вы пишете во флекс-проекте?
ShockWave512
09.08.2011, 11:48
то есть три вопроса в игнор? удобно :)
Jitakuzu
09.08.2011, 11:51
Да, после некоторых манипуляция начало появляться предупреждение в окне вывода:
Предупреждение: несовместимый встроенный шрифт "CloisterBlack" указан для mx.controls::Text (Text7) . Для этого компонента требуется объявление встроенного шрифта посредством embedAsCff=false.
Как использовать embedAsCff?
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 мне это писал =)
[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].
То есть, шрифт подгружается, но
sometext.text = "new text";
sometext.setStyle("fontFamily", "CloisterBlack");
Выводится на стандартном шрифте, а не на том что нужно. Спасите, помогите кто нибудь, я уже измучился с этой задачей...
Там "false" в кавычках должен быть.
Добавлено через 33 секунды
Вы какой версией SDK пользуетесь?
Добавлено через 4 минуты
Или флешка со шрифтом в FlashIDE компилируется?
Jitakuzu
09.08.2011, 13:25
Проект использует SDK 4.5
MyTFT.swf скомпилирована во Flash'е. Шрифт добавлен в библиотеку и экспортирован под именем CloisterBlack. Формат контура выбран TLF(DF4)
trace(Font.enumerateFonts(false)) выводит [object CloisterBlack]. По идеи, шрифт подгружается, но текст все равно выводится в стандартном шрифте
Добавлено через 1 минуту
просто если в MyTFT.swf написать
[Embed(source='assets/CloisterBlack.ttf', fontName="CloisterBlack",
mimeType="application/x-font", unicodeRange="U+0041-U+005A", embedAsCff="false")]
var myFont:Class;
Font.registerFont(myFont);
То компилятор начинает ругаться:
Параметр транскодинга "embedAsCff" не поддерживается "flex2.compiler.media.FontTranscoder"
Транскодинг assets/CloisterBlack.ttf невозможен.
Компилятор во FlashIDE не поддерживает параметр embedAsCff.
Формат контура выбран TLF(DF4)
TextField не поддерживает этот "формат контура". Это аналог embedAsCff.
Шрифт добавлен в библиотеку и экспортирован под именем CloisterBlack.
Какой смысл добавлять шрифт в библиотеку, если используется Embed?
Jitakuzu
09.08.2011, 13:41
нет, Embed я не использую, swf не компилится тогда.
Я просто добавил шрифт в библиотеку и экспортирую его. Основное приложение его видит, но не применяет его к тексту.
Как сделать так, чтобы подгруженные шрифты применялись к тесту? Какой тип текстового поля использовать?
Добавлено через 10 минут
Если можно, то мне бы пример какой нибудь, 100% рабочий, какая структура должна быть у swf со шрифтами, какое текстовое поле использовать во Flex'е и как применить к нему подгруженный шрифт
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.