![]() |
|
||||||||||
|
|||||
|
Здравствуйте.
Возникают проблемы с импортом шрифтов одного семейства. (MyriadPro) В нем есть несколько начертаний. Bold, Bold Condensed, Bold Condensed Italic, Condensed Italic, Condensed и так далее. Если импортироать 1 из них, отображается верно, если импортировать несколько, начитаются артефакты. Где вместо жирного пишет курсивом, вместо курсива жирным и собственными силами не могу побороть. Что не так? public class FontMng { [Embed(source="/asset_font/MyriadPro-BoldCond.otf", fontFamily="MBC", mimeType="application/x-font", embedAsCFF = 'false')] public static const Myriad2ProBoldIT:Class; [Embed(source="/asset_font/MyriadPro-Bold.otf", fontFamily="MB", mimeType="application/x-font", embedAsCFF = 'false')] public static const Myriad2ProBold:Class; [Embed(source="/asset_font/MyriadPro-Cond.otf", fontFamily="MC", mimeType="application/x-font", embedAsCFF = 'false')] public static const Myriad2ProC:Class; [Embed(source="/asset_font/MyriadPro-BoldCondIt.otf", fontFamily="MBCI", mimeType="application/x-font", embedAsCFF = 'false')] public static const Myriad2ProCI:Class;/**/ public function FontMng() { // constructor code traceFont(); } public function fontInit(evt:Event):void { //fontClass:Class = evt.currentTarget.applicationDomain.getDefinition("testFont_myriadprod1") as Class; var _arr :Array = Font.enumerateFonts(); for each( var i in _arr){ trace(i.fontName); /* trace('font'); for ( var id in i) trace(id+" >> "+i[id]);*/ } } public function setStyle(txt:TextField,fontName:String, size:uint = 0, color:Number = -1, align:String = 'left'):void { trace('SET '+fontName); txt.embedFonts = true; txt.selectable = false; txt.autoSize = align; var myHeadingFormat:TextFormat = new TextFormat(fontName); if (color>=0) { myHeadingFormat.color = color; } if (size) { myHeadingFormat.size = size; } txt.setTextFormat(myHeadingFormat); txt.defaultTextFormat = myHeadingFormat; }
__________________
return this... |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ничего не понял. А зачем fontFamily то разный?
Вот пример импорта простого начертания и болда public class Main extends Sprite { [Embed(source = "../lib/SegoeWP.ttf" ,fontFamily = 'SegoeWP' ,fontStyle = 'normal' ,fontWeight = 'normal' ,embedAsCFF = 'false' ,mimeType = 'application/x-font-truetype' )] private const SegoeWP:Class; [Embed(source = "../lib/SegoeWP-Bold.ttf" ,fontFamily = 'SegoeWP' ,fontStyle = 'normal' ,fontWeight = 'bold' ,embedAsCFF = 'false' ,mimeType = 'application/x-font-truetype' )] private const SegoeWPBold:Class;
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну значит у Вас будет нужен болд, италик и италик болд (ну и регуляр, то есть нормальное начертание, ни болд ни италик).
Condensed это не стиль, это подсемейство, так же как Ариал есть простой, Narrow и Black, при этом два первых могут иметь 4 стиля начертания — нормальное, болд, италик и италик-болд, а Black это градация толщины (толще чем болд) и соответственно может иметь два стиля — регуляр и италик. Нет ни HTML-тегов, ни CSS-свойств, чтобы обозначить Condensed или Narrow или Extra Light — это просто "другой шрифт", то есть другое семейство. И импортироваться все представители этого семейства должны с одинаковым именем, но разными атрибутами веса и стиля (болд и италик). Если вы хотите использовать в текстах то просто Myriad, то Myriad Condensed, вам придется указывать именно смену шрифта. А будет в тексте болд, италик или нормал — это уже стиль, задаваемый тегами <b><i> или CSS или текстформатом. Вот сколько всего начертаний в Myriad Pro. А стилей текстформата — только 4. Вслед за HTML и CSS флэшплеер не различает такие стили толщины, как Light, Semibold или Black (а вообще в типографике есть и еще более тонкие ступени, Median, Extra Light, Extra Bold, Extra Black например) — только регуляр и болд. Поэтому нет другого способа использовать все многообразие семейства, кроме как импортировать эти шрифты как отдельный fontFamily.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 06.06.2013 в 00:57. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
package { import flash.text.Font; import flash.text.TextField; import flash.text.TextFormat; import flash.display.MovieClip; public class FontEmbded extends MovieClip { /* REGULAR */ [Embed(source="../lib/MyriadPro-Regular.otf" ,fontFamily= 'MB' ,fontStyle = 'normal' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static const Myriad2Pro:Class; /* BOLD */ [Embed(source="../lib/MyriadPro-Bold.otf" ,fontFamily= 'MB' ,fontStyle = 'normal' ,fontWeight = 'bold' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static const Myriad2ProBold:Class; /* ITALIC */ [Embed(source="../lib/MyriadPro-It.otf" ,fontFamily='MB' ,fontStyle = 'italic' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static const Myriad2ProIT:Class;/*!!!*/ /* BOLD + ITALIC */ [Embed(source="../lib/MyriadPro-BoldIt.otf" ,fontFamily= 'MB' ,fontStyle = 'italic' ,fontWeight = 'bold' ,mimeType= 'application/x-font' ,embedAsCFF = 'false' )] public static const Myriad2ProBoldIT:Class; /* CONDENSED */ [Embed(source="../lib/MyriadPro-Cond.otf" ,fontFamily="MC" ,fontStyle = 'normal' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static const Myriad2ProC:Class; /* CONDENSED BOLD */ [Embed(source="../lib/MyriadPro-BoldCond.otf" ,fontFamily= 'MC' ,fontStyle = 'normal' ,fontWeight = 'bold' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static const Myriad2ProCondBold:Class; /* CONDENSED ITALIC */ [Embed(source="../lib/MyriadPro-CondIt.otf" ,fontFamily='MC' ,fontStyle = 'italic' ,fontWeight = 'normal' ,mimeType="application/x-font" ,embedAsCFF = 'false' )] public static const Myriad2ProCondIT:Class;/*!!!*/ /* CONDENSED BOLD + ITALIC */ [Embed(source="../lib/MyriadPro-BoldCondIt.otf" ,fontFamily= 'MC' ,fontStyle = 'italic' ,fontWeight = 'bold' ,mimeType= 'application/x-font' ,embedAsCFF = 'false' )] public static const Myriad2ProCondBoldIT:Class; public function FontEmbded() { fontInit(); var txtPro:TextField = new TextField(); txtPro.width = 500; txtPro.height = 40; txtPro.embedFonts = true; addChild(txtPro); txtPro.x = 20; txtPro.y = 50; txtPro.defaultTextFormat = new TextFormat("MB", 26); txtPro.htmlText = "MyriadPro <b>Bold</b> <i>Italic</i> <b><i>BoldItalic</i></b>"; var txtCond:TextField = new TextField(); txtCond.width = 500; txtCond.height = 40; txtCond.embedFonts = true; addChild(txtCond); txtCond.x = 20; txtCond.y = 150; txtCond.defaultTextFormat = new TextFormat("MC", 26); txtCond.htmlText = "MyriadPro Condensed <b>Bold</b> <i>Italic</i> <b><i>BoldItalic</i></b>"; } public function fontInit():void { var _arr :Array = Font.enumerateFonts(); for each( var i:Font in _arr){ trace(i.fontName); } } } }
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|