PDA

Просмотр полной версии : как сделать Anti-Alias for readability для TextField


FriOne
23.07.2010, 22:03
Парюсь уже пол дня.. подскажите можно ли сделать, чтобы текст в поле например txt:TextField, не выглядел таким угловатым, чем или какими свойтвами это можно реализовать?
З.Ы. Кодю на АС2.. хотелось бы чтоб выглядело как стандартное Anti-Alias for readability в ручном режиме создания текста.

mooncar
23.07.2010, 23:05
Свойство TextField.antiAliasType смотрели?
Ну шрифты внедрить не забудьте.

mooncar
23.07.2010, 23:26
Вот так например.
Программно: создаем поле, делаем более читабельным и внедряем шрифты.

FriOne
24.07.2010, 00:09
почему то у меня флэш не хочет открывать этот файл( пишет Unxpected file format(

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

Возможно из-за этой причины и файл не открывается.. не подскажете в чем может быть проблема?

mooncar
24.07.2010, 00:14
Да, нужно внедрять шрифт.
А исходник в формате CS3.

FriOne
24.07.2010, 00:18
у меня Macromedia Flash 8 вроде долно работать, прост в последнее время что-то глючит.. эх ладн.. буду искать нормальный компилятор

Добавлено через 1 минуту
МБ кто-нить кинет ссылку?

mooncar
24.07.2010, 00:20
Пересохраню для 8-ки. Но там внедрение, а вас оно не устраивает.
Без внедренных шрифтов вообще мало что можно сделать в тюнинге динамического текста.

FriOne
24.07.2010, 00:27
Спасибо!.. самое обидное что я так и делаю)

var format_1:TextFormat = new TextFormat(); // Создаем новый стиль
format_1.size = 12; // Задаем размер шрифта
format_1.font = "Century Gothic";// Задаем необходимую гарнитуру
format_1.color = 0xffffff;about.embedFonts = true;
about.antiAliasType = "advanced";
//about.thickness = -200;
//about.sharpness = -800;
about.autoSize = true;
about.text = txt_one[i];
about.selectable = false;
about.setTextFormat(format_1);
Но после этого в текстовом поле вообще ничего не ототбражается( конешно это из-за того, что не внедряю, но моего шрифта(Century Gothic) нет в embed

Добавлено через 2 минуты
или я совсем ничего не понял)

mooncar
24.07.2010, 00:37
Ну вы декларируете внедрение
about.embedFonts = true;
А само внедрение, видимо не делаете.
Создайте вне области сцены техническое текстовое поле, оформленное с помощью шрифта "Century Gothic" и внедрите (кнопочкой "Embed") туда нужный шрифт, нужные наборы символов, шрифт "подцепится" при компиляции и будет использоваться. См. мой пример, там есть такое поле в верхней части..

FriOne
24.07.2010, 00:38
ееее) не такой уж я и дурак.. сделал)
спасибо mooncar уже второй раз помогаете!

Добавлено через 1 минуту
я создал в библиотеке и все заработало)

mooncar
24.07.2010, 00:41
Внедрять с помощью библиотеки не рекомендую.
Добейтесь работы с использованием дополнительного поля.

FriOne
24.07.2010, 00:48
Поторопился) сейчас гляну спасиб..

Добавлено через 10 минут
Ага пашет.. вы гений)
Только не пойму, этот текст находится в копке и при нажатии\наведении текст меняет формат, но на второй формат (формат нажатой кнопки) AntiAliasType не действует почему-то.
Подскажите как можно его на оба формата сделать плз.
P.S. хотя мб обман зрения), но вроде я прав..

Добавлено через 17 минут
Ладн наверно уже наглею.. сэнк все равно, очень помогли понять что к чему)

mooncar
24.07.2010, 01:14
AntiAliasType - относится не к формату, это свойство текстового поля.
Если бы вы выложили ваш кусочек исходника с этой кнопкой, можно было бы посмотреть.

FriOne
24.07.2010, 01:22
Наверно это все таки обман, но вот кусочки кода...
Так создаются кнопки
for(var i=0;i<3;i++)
{
var txt:MovieClip = men_one.createEmptyMovieClip(txt_one[i], i);
one[i] = txt;
var about:TextField = txt.createTextField(txt_one[i]+"t",0,5,100+i*16,0,0);
about.embedFonts = true;
about.antiAliasType = "advanced";
about.thickness = -400;
about.autoSize = true;
about.text = txt_one[i];
about.setTextFormat(format_1);
txt.id=i;
one[i].onRollOver = function()
{
playOver(this,this._parent);
}
one[i].onRollOut = function()
{
playOut(this,this._parent);
}
one[i].onRelease= function()
{
onClick(this,this._parent);
}
}
Форматы
var format_1:TextFormat = new TextFormat();
format_1.size = 12;
format_1.font = "Century Gothic";
format_1.color = 0xffffff;
var format_2:TextFormat = new TextFormat();
format_2.size = 12;
format_2.font = "Century Gothic";
format_2.color = 0xBA8E2C;
Событие
function playOver(mc1:MovieClip,mc2:MovieClip)
{
var currentBtn:Number = mc1.id;
if(currentBtn == 0)
{
mc2.Info.Infot.setTextFormat(format_2);
mc2.Info.Infot.setTextFormat(0,format_1);
}
if(currentBtn == 1)
{
mc2.Projects.Projectst.setTextFormat(format_2);
mc2.Projects.Projectst.setTextFormat(0,format_1);
}
if(currentBtn == 2)
{
mc2.Contact.Contactt.setTextFormat(format_2);
mc2.Contact.Contactt.setTextFormat(0,format_1);
}
}

Добавлено через 28 минут
очень кривовато?)

mooncar
24.07.2010, 10:34
Посмотрите для двух форматов мой пример.

FriOne
24.07.2010, 15:30
о5 же говорит что не подходит... Unexpected file format*
А у меня все таки на один формат анти-алиас?

mooncar
24.07.2010, 16:20
Пересохранил, проверьте.

А у меня все таки на один формат анти-алиас?
По логике - да. Точнее, еще раз повторюсь, анти-алиас - это свойство (property) класса TextField, а не TextFormat.