2009-06-23 62 views
0

如何在我的actionscript代码中使我的字符串和文本属性为粗体?actionscript 3和使用字体

我正在使用模式背后的代码,所以我有一个文本属性的mxml组件。然后我有我的动作组件,我连接三个文本属性,并将它们设置为mxml文本组件上的文本属性。

我希望能够灵活处理每个连接的文本字段的样式。然而,我想要第一个文本加粗和最后一个粗体。有任何想法吗?

回答

2

如果要为文本使用不同的字体权重,除创建两个文本组件(标签,文本等)外没有别的选择。

如果使用外部字体,一定要嵌入正常和加粗的字体:在你的CSS

@font-face 
{ 
    src:     url("calibri.ttf"); 
    fontFamily:    calibri; 
    advanceAntiAliasing:     true; 
    fontWeight:    normal; 
} 

@font-face 
{ 
    src:   url("calibrib.ttf"); 
    fontFamily:  calibri; 
    fontWeight:  bold; 
} 

,并设置一些样式,比如:

.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"; 
0

这里是示例应用程序。我假设你的资产目录中有century.ttf文件:

<?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> 

并非所有字体都暴露所有变体。一些字体只会给你正常的,一些给你所有的东西:普通,粗体,斜体。 希望这有助于。

0

的ActionScript如果你不想要一个TextFormat,那就是:

myTextFormat = new TextFormat(); 
myTextFormat.bold = true; 
myTextField.setTextFormat(myTextFormat); 

...你也可以使用的htmlText:

myTextField.htmlText='<b>Bold</b> not bold <b>Bold again!</b>';