Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> embedFonts, @runTime 
:(
    Опции темы
AlDev
Дата 28.12.2006, 13:24 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



Загрузка шрифтов в RunTime smile
Пример не для Flex (хотя там то же заработает, но там можно поизящней, но с тем же смыслом smile )

Step-by-step:
1. Если не надо использовать все символы шрифта, и боремся за место, то в 8-м Flash-е создадим Fla файл, и положим на сцену TextField. У TextField-а откроем Properties и выставим шрифт как Tahoma, там же (в properties) щелкнем по кнопочки Embed... и выберем (используя нажатый Ctrl) Uppercase и Lowercase. Давим OK, Паблишим swf-ку. Обзываем ее как TahomaRegular.swf

2. Открываем Flex 2, создаем ActionScript 3 Project, обзываем его FontLib.

Код проекта:
Код

package {
    import flash.display.Sprite;

    public class FontLib extends Sprite
    {
        [Embed(source="./bin/TahomaRegular.swf", fontFamily="Tahoma",mimeType="application/x-shockwave-flash")]
        public var TahomaFont:Class;
    }
}


3. Копируем TahomaRegular.swf, полученный на первом шаге в папку bin проекта FontLib.

Все. Наша библиотечка готова.
Теперь ее можно грузить и использовать. Создадим какой-нить ActionScript 3 проект во Flex-е под названием, например, FontLoader.
Код

package {
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.display.LoaderInfo;
    import flash.text.*;

    /**
     * Пример run-time подгрузки шрифтов 
     * @version 0.1
     * @author AlDev
     */
    public class FontLoader extends Sprite
    {                
        /**
         * Конструктор класса
         * @return FontLoader
         */
        public function FontLoader()
        {
            //создадим Loader для загрузки
            var loader:Loader = new Loader();
            //добавим слушателя на событие загрузки
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
            //начнем загружать
            loader.load(new URLRequest('./FontLib.swf'));
        }
        
        /**
         * Событие загрузки библиотеки
         * @param event Event
         * @private
         */
        private function onComplete(event:Event):void {
            
            //получим, что собсно загружали
            var loaderInfo:LoaderInfo = LoaderInfo(event.target);
            //получим ссылку на class TahomaFont, объявленный в FontLib
            var tahomaFontClass:Class = loaderInfo.content['TahomaFont'];
            //и скажем, что этот класс - Font, и что его можно использовать
            Font.registerFont(tahomaFontClass);
            
            //получим список embed шрифтов
            var fontList:Array = Font.enumerateFonts(false);
            
            //ну и выведем его
            for each (var f:Font in fontList) {
                trace (f.fontName,f.fontStyle,f.fontType);
            }
            
            //дальше просто создание TextField-а и его поворот, 
            //используя загруженный шрифт
            var format:TextFormat        = new TextFormat();
            format.font                   = "Tahoma";
            
            var label:TextField         = new TextField();
            label.embedFonts            = true;
            label.autoSize              = TextFieldAutoSize.LEFT;
            label.antiAliasType         = AntiAliasType.ADVANCED;
            label.defaultTextFormat     = format;
            label.text                  = "Hello World!";
            
            label.rotation = 45;
            addChild(label);
        }
    }
}


Теперь если случай, когда пофиг на объемы и надо загрузить все, что можно у шрифта.
1. Первый шаг нам нахер не нужен smile
2. Код FontLib теперь выглядит вот так:
Код

package {
    import flash.display.Sprite;

    public class FontLib extends Sprite
    {
        [Embed(source="C:\\WINDOWS\\Fonts\\Tahoma.ttf", fontFamily="TahomaEmbed")] 
        public var TahomaFont:Class;
    }
}

Юзать можно любой TTF фонт.
3. Использование шрифта то же меняется, он появляется как новый.
Выглядит изменившийся кусок вот так:
Код

            //дальше просто создание TextField-а и его поворот, 
            //используя загруженный шрифт
            var format:TextFormat        = new TextFormat();
            format.font                   = "TahomaEmbed";


На заметку. Размер файла библиотеки при полностью заэмбеженым Tahoma шрифтом - 80 с лишним килобайт, а если только UpperCase и LowerCase - всего 8 килобайт.
PM MAIL WWW ICQ YIM MSN   Вверх
artfabrique
Дата 1.3.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Дизайн
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 5.2.2006
Где: СПб

Репутация: нет
Всего: 2



беда в том чо флэш его загрузить загрузит а использовать не будет (что касается 8-ки).
Он при компиляции заного будет эмбедить шрифты со всех динамичных текстфилдов присутствующих на таймлайне =)).
Причем ему почему то абсолютно положить на то что я пишу форматы, embedFonts = true итд..
А вот если динамично сазданное текстовое поле то пожалста все ок получется =) хз почему так..
потом ещё не маловажная деталь. ты должен грузить библиотеку именно в первом кабре иначе она не инициализируется нормально
тоесть он её загрузит а потом, как токо создашь текстфилд заного грузить начнет..

Добавлено @ 10:45 
фо флексе то понятно похать будет потому что там все RSL и ассеты до инита клипа крузятся и понятия при компиляции общая таймлайн нету, поэтому всё окейна выходит..
--------------------
Я спасу мир! © ЙУХ 0000г.
PM MAIL WWW ICQ   Вверх
AlDev
Дата 1.3.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



Это AS3! smile
8-ка тут не при чем
PM MAIL WWW ICQ YIM MSN   Вверх
tstudio
Дата 18.3.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: 2



Знаете какая у мну мысля закралась...
Если юзать в Embedded шрифтах не чернобелый шейпы букавок, а сделать картинки - то это будет просто великолепная основа для смайликов в чате)


Кто нить знает это можно сделать?)
PM MAIL WWW ICQ   Вверх
AntonioBanderaz
Дата 19.3.2007, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 18



ИМХО тормозу будут, проще ХТМЛ использовать... тоесть парсить строки (смайлы -> img)


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
tstudio
Дата 19.3.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: 2



а во флеш html обработка ж не поддерживает вставку картинок...
тока <b><i><u><a href> и все...
PM MAIL WWW ICQ   Вверх
AntonioBanderaz
Дата 19.3.2007, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 18



да ладно, к примеру посмотри samples от 8-го флеша... сто-пудово есть.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
tstudio
Дата 23.3.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.1.2007

Репутация: нет
Всего: 2



Мы люди бедные лицензии не имеем... так что без семплов((
буду хелп мучать
PM MAIL WWW ICQ   Вверх
AntonioBanderaz
Дата 23.3.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 18



Гыг...
Programs\Macromedia\Flash 8\Samples and Tutorials\Samples

Добавлено @ 17:43 
лицензия тут не причем собственно


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
mikhailoff
Дата 13.6.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.6.2007

Репутация: нет
Всего: нет



Цитата(tstudio @  19.3.2007,  16:18 Найти цитируемый пост)
а во флеш html обработка ж не поддерживает вставку картинок...


поддерживает и вставку картинок..
PM MAIL   Вверх
AlDev
Дата 15.6.2007, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



только вот комбинацию embed fonts + html не поддерживает
PM MAIL WWW ICQ YIM MSN   Вверх
mikhailoff
Дата 28.6.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.6.2007

Репутация: нет
Всего: нет



к сожалению..
PM MAIL   Вверх
AlDev
Дата 3.7.2007, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



ХХЕ!
Скомпиллил под Flex 3.
embed fonts катят в htmlText!
PM MAIL WWW ICQ YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.