Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   dynamic text + embedded fonts проблема отображения сглаженного загружаемого текста (http://www.flasher.ru/forum/showthread.php?t=81276)

пипка 15.06.2006 21:48

dynamic text + embedded fonts проблема отображения сглаженного загружаемого текста
 
привет!
столкнулся с проблемой, поиск не дал решения.
итак, имеется код:
Код:

ф

stop();
import flash.geom.Rectangle;
var windowHeight:Number = 190;
var scrollerWidth:Number = 270;
var window:Rectangle = new Rectangle(0,0, scrollerWidth, windowHeight);
var intervalId:Number;
mc.cacheAsBitmap = true;
mc.scrollRect = window;

// text field creation
var txtFormat:TextFormat  =  new TextFormat ();
txtFormat.font = "miriam";
txtFormat.size = 12;

mc.createTextField ("about", 1, 0, 0, scrollerWidth, 0);
mc.about.autoSize = true;
mc.about.wordWrap = true;
mc.about.html = true;
mc.about.selectable = false;
mc.about.embedFonts = true;
mc.about.setTextFormat(txtFormat);

//---------------------------------------------

//data load

var aboutdata:LoadVars = new LoadVars();

aboutdata.onData = function (src)
{
        if (src != undefined)
        {
                mc.about.htmlText= src;
        }
        else
        {
                mc.about.text = "Unable to load external data.";
        }
}
aboutdata.load ("about.txt");

и т.д.

в библиотеке файла импортирую фонт мириам и делаю linkage с соответствующим именем.

при запуске ролика текст не отображается, размеры текстового поля не изменяются. :( в общем, текст упрямо не хочет отображаться.

При отмене embedFonts текст отображается, но шрифт не Мириам, а дефалтовый и размер не тот, в общем TextFormat игнорируется.

помогите пожалуста.

Reijii 15.06.2006 23:09

сомневаюсь что поиск не даст ответа на запрос embedFonts или встраивание фонта. поищи неоднократно тема поднималась.

etc 15.06.2006 23:16

Надо юзать setNewTextFormat

дядя Джо 15.06.2006 23:20

Здравствуйте дорогой товарищь. :) Ваша проблема понятна: шрифты во флэше - дело тонкое. Попробуйте сделать следующим образом, создайте на рабочем поле, но спрячте от юзера текстовое поле типа динамик текст, и вставтье ручками в это поле весь набор необходимых символов шрифта, который вам понадобиться, затем выберите тип сглаживания встроенного шрифта из выпадающего списка рядом с кнопкой Embed. Во флэш 8 выбрать можно один из трех вариантов, кроме use device font, что понятно, иначе кнопка Embed не будет доступна. В завершении жмем на эту кнопку Embed и там выбираем Auto fill, то есть будем встраивать в фильм символы которые ввели в текстовое поле, так мы наглядно будем видеть какие символы встроены в фильм, и потом не будем гадать, почему у нас пропал какой-либо знак. Кроме того если вы выберете Bitmap тип сглаживания, то буде встроен шрифт только того размера, который указан в свойствах поля, и изменить размер динамически не удасться. :umnik2: Итак, в настройках публикации ставим галочку generate size report, и тестируем фильм. В отчете мы сможем прочитать какие символы встроены в фильм, и точное название шрифта. Для того чтобы теперь этот шрифт применить нам понадобиться простой код:
Код:

mc.createTextField ("about", 1, 0, 0, scrollerWidth, 0);
mc.about.embedFonts = true;
mc.about.setNewTextFormat(emed_txt.getNewTextFormat());

Незабудте присвоить имя emed_txt экземпляру текстового поля, в котором храняться символы встроенного шрифта. И не перепутайте свойства setNewTextFormat и setTextFormat, первое задает формат текста который еще только будет после присвоен текстовому полю, а второе задает формат текста, который уже присвоен текстовому полю, проверье путь видимости нашего экземпляра emed_txt, если код по заданию формата будет находиться не на одной временной шкале с экземпляром текстового поля, или на другом кадре. ;)
Больше информации о динамически встраиваемых шрифтах можно прочитать здесь
Удачи вам дорогой товарищь!

Reijii 15.06.2006 23:23

мда прогнал я с постом, не доглядел что есть в библиотеке уже фонт :(
пора отходить от клавиатуры (

пипка 16.06.2006 05:15

хм
большое спасибо всем сочуствующим, а так же товарищам.
час поздний, завтра попробую предложенные методы.
:drinks:
-------------------------------------------------------

.... попробовал на скроорую руку просто заменить команду на setNewTextFormat - дудки, все равног текст не отображается.

хотелось бы найти решение без использования самодельной копилки символов в динамическом текст поле, ведь в документации описано как все должно работать, и даже приведенный скрипт с поворотом текста на 45 градусов работает, однако, как только текст не вводиться напрямую из скрипта, а загружается извне, ничего не работает.
Это баг программы, или моих мозгов?

Oreanor 16.06.2006 19:10

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

пипка 17.06.2006 14:45

значит так

в итоге использование setNewTextFormat помогло - шрифты отображаются корректно, однако....

Все это заработало только после того, как я создал, по совету нашего дорогого товарища динамическое текстовое поле вне главного окна, в этом поле сделал ручной embed и поставил галочку auto fill.

после публикации документа все равно ничего не появилось, тогда я стер созданное ранее динамическое поле, и решил еще раз попробовать setNewTextFormat.

Я заново импортировал и сделал linkage требуемому шрифту, проверил код, запустил и - о чудо, работает!

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

спасибо всем. :yahoo:

etc 17.06.2006 15:33

Флеш по-разному себя не ведет, просто что-то не так делалось

пипка 17.06.2006 16:32

мда, ты прав - сделал новый мувик, все работает и так.

решение - setNewTextFormat


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

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