Записки о Flash

FontLoader v. 2.2

Очередная новая версия FontLoader. Добавилось событие IOErrorEvent.VERIFY_ERROR, которое посылается в случае, если загруженный файл имеет неверный формат (например, вместо swf загружен html).


14 comments

14 Comments so far

  1. timteka June 25th, 2009 21:42

    Наиполезнейший класс.
    Вот бы еще в качестве параметра передавать ему массив ;-) Сомневаюсь, что многие загружают единственную swf-ку с кучей внедренных шрифтов. Более приятной, имхо, была бы вот такая штука:
    fl.load(['Arial.swf','Tahoma.swf','Verdana.swf']);

  2. etc June 26th, 2009 06:05

    Ну, вообще говоря, ничего не мешает сделать менеджер загрузкок. FontLoader — конкретный лоадер конкретного файла, делать из него монстра закачек в мои планы как-то не входило :)

    з. Ы. Сорри, почему-то абсолютное большинство комментариев распознается как спам, приходится аппрувить постоянно.

  3. Don IndulgencI0 April 12th, 2010 23:38

    Вот не пойму только, зачем такие навороты с байтаррэями. Заголовки пришивать зачем? Класс SWFByteArray и все такое… Неужели просто нельзя залить SWF и прошерстить его на предмет присутствующих полей с фонтами? Чего я тут недопонимаю?

  4. etc April 13th, 2010 08:19

    Можно, только шрифты мы как использовать будем?

  5. Don IndulgencI0 April 19th, 2010 19:55

    Ну как, стандартно же.. Файлик залили, зарегистренный ембедед фонтс считали и вперед. Или, скажем так, ЧТО такого может Ваш Лодырь, чего нельзя достичь мирным путем? Возможность считать более одного фонта из одного SWF-a? Так для шарного ембеда все фонты разделяют и так. По начертаниям. Шоб не запутатсо. Один файлик – одно начертание…

    А какие именно спецификации по формату SWF вы использовали в этой работе? Что-то типа такого http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v9.pdf ?

  6. etc April 19th, 2010 20:22

    Послушайте, если вы просто загрузите swf с шрифтом в каком-либо виде, использовать этот шрифт вы не сможете в общем случае. Только если он не регистрируется автоматически, что сделать несложно, но по ряду причин бывает невозможно (например, у вас вообще нет исходного шрифта, есть только swf). Эту проблему FontLoader и решает.

    Что касается спецификации, то да, в частности и эта спецификация была использована.

  7. Don IndulgencI0 April 19th, 2010 23:38

    Э-э.. Как же я не смогу его использовать? Вроде же это и есть основное отличие AVM2 от AVM1, что теперь фонты стали доступны глобально по плееру. Вот, скажем, стандартный туториал, как это типически имплементить: http://www.communitymx.com/content/article.cfm?cid=67A61

  8. etc April 20th, 2010 04:03

    Да, доступны. Но есть несколько проблем:
    1. Необходимость вызова registerFont (в туториале это описано);
    2. Из-за п. 1 необходимо указывать класс для embedded-шрифта, а в Flash IDE это можно сделать только создавая шрифт в библиотеке;
    3. Из п. 2 вытекает новая проблема — невозможность указания конкретных диапазонов символов (за исключением CS5, где наконец-то добавили эту опцию) в диалоге создания шрифта (зато это можно сделать в свойствах текстового поля на сцене). Как следствие, кириллица в диапазон по умолчанию не попадает;
    4. Если воспользоваться метатегом [Embed], то необходимо наизусть знать все параметры этого тега, плюс коды диапазонов символов. Не WYSIWYG way, но для хардкорщиков подойдет. Правда, последние могут болезненно воспринять тот факт, что помимо класса шрифта, в конечном swf ещё окажется некоторое количество мусора, вроде Flex-овых asset-ов.

    FontLoader упрощает процесс создания внешнего шрифта до следующей процедуры:
    1. Во Flash IDE создаем на сцене поле с шрифтом X и вшитыми диапазонами Y;
    2. Компилируем;
    3. Загружаем с помощью FontLoader-а скомпилированный swf;
    4. PROFIT.

    Никаких классов, никакого выучивания наизусть метатегов. А если у вас вообще нет нужного шрифта в системе для создания swf с ним, но есть сам swf, в котором такой шрифт присутствует, то FontLoader является решением данной проблемы. Ему вообще по барабану на формат swf, главное, чтобы там был embedded-шрифт в каком-нибудь виде. Собственно, всё. Понятно, что для труъ-флешеров FontLoader нафиг не упал, но этот инструмент и не для них.

  9. Don IndulgencI0 June 17th, 2010 22:14

    Круто! Вот это я понимаю, глубокое изучение вопроса!
    Спасибочки! Кучу времени экономите людям.

  10. zEvg July 21st, 2010 10:18

    Правильно я понимаю что сейчас FontLoader не умеет загружать шрифты для spark-овских контролов, которые используют Flash Text Engine ? Шрифты для FTE должны эмбедится с атрибутом embedAsCFF=”true”, как только я делаю флешку со шрифтами, где у эмбеда шрифта есть атрибут embedAsCFF=”true” FontLoader перестает находить oбъекты класса Font в загруженной swf-ке. Если это так, существует ли какая-то возможность подгружать шрифты для FTE во время выполнения?

    Спасибо за помощь!

  11. etc July 21st, 2010 10:23

    FontLoader не знает ничего о тегах DefineFont4.

  12. zEvg July 21st, 2010 10:30

    Планируется ли научить FontLoader понимать теги DefineFont4 ?

  13. etc July 21st, 2010 10:32

    Только при наличии свободного времени. К сожалению, его почти нет сейчас :(

  14. zEvg July 21st, 2010 10:34

    Ясно, спасибо.
    Буду искать альтернативный путь, если не найду попробую допилить FontLoader…

Leave a reply