as3 格式化文本字段

发布于 2024-08-27 18:52:56 字数 521 浏览 7 评论 0原文

我在 as3 中动态创建文本字段,并使用 TextFormat 类对其进行格式化。不过,在选择应用于文本字段的确切字体“样式”时,我遇到了一些问题。到目前为止,我的代码看起来像:

   formatT = new TextFormat( );
   formatT.bold = false; 
   formatT.color = 0x000000; 
   formatT.font = "TradeGothic";    
   formatT.size = 16;

    var textItem = new TextField();
    textItem.text = "foobar";
    textItem.setTextFormat(formatT);
    addChild(textItem);

这有效(“Trade Gothic”应用于所附文本),但是我不知道如何应用“Trade Gothic”的特定样式,例如“Light Oblique”。有什么方法可以使用 TextFormat 类来指定它吗?

谢谢。

I'm dynamically creating textfields in as3, and formatting them with the TextFormat class. I'm having some issues though with selecting the exact "style" of font to apply to the textfields. My code so far looks like:

   formatT = new TextFormat( );
   formatT.bold = false; 
   formatT.color = 0x000000; 
   formatT.font = "TradeGothic";    
   formatT.size = 16;

    var textItem = new TextField();
    textItem.text = "foobar";
    textItem.setTextFormat(formatT);
    addChild(textItem);

This works ("Trade Gothic" is applied to the enclosed text), however I can't figure out how to apply a specific style of "Trade Gothic", for instance "Light Oblique". Is there some way that I can specify this using the TextFormat class?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怀里藏娇 2024-09-03 18:52:56

您需要找到所需字体的名称:

var fonts = Font.enumerateFonts(true);
fonts.sortOn("fontName", Array.CASEINSENSITIVE);
for each(var f:Font in fonts)
     trace(f.fontName);

您应该看到“TradeGothic”的多个列表。我猜你想要的是“TradeGothic Light Oblique”,例如:

formatT.font = "TradeGothic Light Oblique";

由于你的字体不是很常见,我建议嵌入它 - 否则它不会在没有安装该字体的计算机上正确呈现(请参阅< a href="http://www.adobe.com/devnet/flash/quickstart/embedding_fonts/" rel="nofollow noreferrer">此处)。嵌入字体后,您必须指定:

textItem.embedFonts = true;

顺便说一句,如果您只想列出嵌入字体的名称,请为参数指定 false

var embeddedFontsOnly = Font.enumerateFonts(false);

You need to find the name of the font you want:

var fonts = Font.enumerateFonts(true);
fonts.sortOn("fontName", Array.CASEINSENSITIVE);
for each(var f:Font in fonts)
     trace(f.fontName);

You should see multiple listings for "TradeGothic". I'm guessing the one you want is "TradeGothic Light Oblique", e.g.:

formatT.font = "TradeGothic Light Oblique";

Since your font is not very common I would suggest embedding it - otherwise it won't render correctly on computers that don't have that font installed (see here). Once you embed the font, you have to specify:

textItem.embedFonts = true;

btw, if you want to just list the names of embedded fonts, specify false for the parameter:

var embeddedFontsOnly = Font.enumerateFonts(false);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文