【问题标题】:actionscript 3 and using fontsactionscript 3 和使用字体
【发布时间】:2009-06-23 09:39:24
【问题描述】:
如何在我的 actionscript 代码中将字符串和文本属性设为粗体?
我正在使用模式背后的代码,所以我有一个带有文本属性的 mxml 组件。然后我有我的 actionscript 组件,我在其中连接三个文本属性并将它们设置为 mxml 文本组件上的文本属性。
我希望能够灵活处理我连接的每个文本字段的样式。但是,我想要第一个粗体文本和最后一个粗体文本。有什么想法吗?
【问题讨论】:
标签:
apache-flex
actionscript-3
fonts
【解决方案1】:
如果您想为文本使用不同的字体粗细,您别无选择,只能创建 2 个文本组件(标签、文本、...)。
如果您使用外部字体,请务必同时嵌入普通字体和粗体:
@font-face
{
src: url("calibri.ttf");
fontFamily: calibri;
advanceAntiAliasing: true;
fontWeight: normal;
}
@font-face
{
src: url("calibrib.ttf");
fontFamily: calibri;
fontWeight: bold;
}
并在您的 CSS 中设置一些样式,例如:
.calibri16
{
font-size: 16;
font-weight:normal;
font-family:calibri;
color: #666666;
}
.calibri16b
{
font-size: 16;
font-weight:bold;
font-family:calibri;
color: #666666;
}
然后您可以设置文本组件的 styleName 属性:
<HBox>
<Label id="myLabel" styleName="calibri16b" text="This is bold" />
<Label id="myLabel2" styleName="calibri16" text="and regular" />
</HBox>
在动作脚本中:
myLabel.styleName = "calibri16b";
myLabel2.styleName = "calibri16";
【解决方案2】:
这里是示例应用程序。我假设你有包含 Century.ttf 文件的 assets 目录:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Style>
@font-face {
src: url("assets/century.ttf");
fontFamily: Century;
fontStyle: normal;
fontWeight: normal;
}
.myClass {
fontFamily: Century;
}
</mx:Style>
<mx:Label text="Different font" styleName="myClass" />
</mx:WindowedApplication>
并非所有字体都公开所有变体。有些字体只会给你正常,有些给你全部:正常,粗体,斜体。
希望这会有所帮助。
【解决方案3】:
在ActionScript中如果你不想要一个TextFormat,那就是:
myTextFormat = new TextFormat();
myTextFormat.bold = true;
myTextField.setTextFormat(myTextFormat);
...你也可以使用htmlText:
myTextField.htmlText='<b>Bold</b> not bold <b>Bold again!</b>';