|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 16.08.10]
Регистрация: Jun 2009
Сообщений: 93
|
Скорее всего он спрашивает у системы про италик а система выдает тру если есть италик и даже тогда когда его можно сделать искусственно.
И вот тут я подумал о свойствах тексфилда, тоесть размер букв и прочее, ведь италик должен отличаться от болда и регуляра, так вот если у фонта нету италика откуда тогда плеер берет инфу(скорее всего там реально лежит регуляр и просто искусственно прорисовывается италик). И на скорую руку написал тест 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; } около 20 фонтов из треиса проверил отклонений не нашел. У всех проверенных фонтов после которых стоял true действительно был встроенный италик, у false не было. Последний раз редактировалось veisss; 16.08.2010 в 19:47. |
|
|||||
[+1 16.08.10]
Регистрация: Jun 2009
Сообщений: 93
|
Если тебя устраивает текст в виде картинки то вот вариант без встраивания
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, время: 15:45. |
|
« Предыдущая тема | Следующая тема » |
|
|