【问题标题】: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>';
        

        【讨论】:

          猜你喜欢
          • 2010-12-06
          • 2012-05-01
          • 2013-07-29
          • 2013-06-17
          • 1970-01-01
          • 2018-12-29
          • 2011-02-23
          • 2011-05-27
          • 1970-01-01
          相关资源
          最近更新 更多