Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.08.2010, 09:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 21  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
спасибо,
действительно почти все ему нравятся..
что за совместимость он выдает, неясно

Старый 16.08.2010, 19:24
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 22  
Ответить с цитированием
veisss
[+1 16.08.10]

Регистрация: Jun 2009
Сообщений: 93
Скорее всего он спрашивает у системы про италик а система выдает тру если есть италик и даже тогда когда его можно сделать искусственно.

И вот тут я подумал о свойствах тексфилда, тоесть размер букв и прочее, ведь италик должен отличаться от болда и регуляра, так вот если у фонта нету италика откуда тогда плеер берет инфу(скорее всего там реально лежит регуляр и просто искусственно прорисовывается италик).
И на скорую руку написал тест
Код AS3:
import flash.text.Font;
var arr:Array=Font.enumerateFonts(true);
for(var i:int=0;i<arr.length;i++){
	var font:Font=arr[i];
	var w1:Number=getTextWidth(font.fontName,true);
	var w2:Number=getTextWidth(font.fontName,false);
	if(w1!=w2){
		trace(font.fontName+" true");
	}else{
		trace(font.fontName+" false");
	}
 
}
 
function getTextWidth(fontName:String,italic:Boolean):Number{
	var tf:TextField = new TextField();
	var fmt:TextFormat = new TextFormat(fontName, 24, 0x0, false, italic);
	tf.autoSize = TextFieldAutoSize.LEFT;
	tf.text = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
	tf.setTextFormat(fmt);
	return tf.textWidth;
}
Я тут сравниваю textWidth италика и регуляра и если они совпадают то прорисовка идет искусственно,
около 20 фонтов из треиса проверил отклонений не нашел.
У всех проверенных фонтов после которых стоял true действительно был встроенный италик, у false не было.


Последний раз редактировалось veisss; 16.08.2010 в 19:47.
Старый 16.08.2010, 19:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 23  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
veisss, предложения начинаются с Большой буквы, а заканчиваются обычно точкой.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.08.2010, 01:38
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 24  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
silin, veisss, и чем всё закончилось?
Удалось как то победить?
Столкнулся сейчас с похожей проблемой.
__________________
trace("Остановите Землю, я сойду!!!");

Старый 20.08.2010, 03:16
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 25  
Ответить с цитированием
veisss
[+1 16.08.10]

Регистрация: Jun 2009
Сообщений: 93
Я в 7-ом посту выложил код, там посмотри. То есть если у фонта есть свой италик, и он встроен в свф то проблем не возникает.
Код AS3:
tf.embedFonts=true;
снимает проблему


Последний раз редактировалось veisss; 20.08.2010 в 03:18.
Старый 20.08.2010, 03:23
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 26  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Не, у меня юзаются все шрифты что есть на машине юзера, поэтому внедрение шрифтов в моем случае не выход.
__________________
trace("Остановите Землю, я сойду!!!");

Старый 20.08.2010, 03:45
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 27  
Ответить с цитированием
veisss
[+1 16.08.10]

Регистрация: Jun 2009
Сообщений: 93
Если тебя устраивает текст в виде картинки то вот вариант без встраивания
Код AS3:
var font_description:FontDescription = new FontDescription();
font_description.fontName="Tahoma";
font_description.fontPosture=FontPosture.ITALIC;
font_description.renderingMode=RenderingMode.NORMAL;
font_description.locked=true;
var element_format:ElementFormat=new ElementFormat(font_description);
element_format.fontSize=40;
element_format.kerning=Kerning.ON;
element_format.color=0x000000;
element_format.alpha=1;
var text_element:TextElement=new TextElement("TEST",element_format);
var text_block:TextBlock = new TextBlock();
text_block.content=text_element;
var text_line:TextLine=text_block.createTextLine(null,500);
text_line.x=20;
text_line.y=40;
addChild(text_line);
 
 
var text_field:TextField=new TextField();
var text_format:TextFormat = new TextFormat();
text_format.color=0x000000;
text_format.size=40;
text_format.font="Tahoma";
text_format.italic=true;
text_field.x=18;
text_field.y=30;
text_field.autoSize = TextFieldAutoSize.LEFT;
text_field.text="TEST";
text_field.setTextFormat(text_format);
addChild(text_field);
Нашел тут
В детали етих класов не вдавался может там можно и обычные текстфилды рендерить

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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