【问题标题】:change font color of a part of text in TextArea更改 TextArea 中部分文本的字体颜色
【发布时间】:2010-08-19 13:54:52
【问题描述】:

我正在使用 actionript 3 和 flex 3.5。有没有办法在不使用“htmlText”属性的情况下更改 TextArea 控件中部分文本的字体颜色?

例如,我有一个字符串“狗、猫、鱼”。我想将“猫”字的颜色更改为红色。有可能吗?

【问题讨论】:

    标签: apache-flex flash actionscript-3


    【解决方案1】:

    如果您已经有办法定位字符,那么您只需要TextFormatTextField 类即可实现此目的。 TextFormat 类允许您为字段定义样式...

    var format:TextFormat = new TextFormat();
    format.font = "Helvectica";
    format.size = 14;
    format.color = 0xFFCC00;
    format.leading = 2;
    

    然后,您可以使用...在 TextField 中的文本子集上设置该格式。

    var field:TextField = new TextField();
    field.text = "fish cat dog rat"
    field.setTextFormat( format, 6, 12 ) 
    

    ... 其中 6 是开始格式化的索引,而 12 是结束格式化的索引。

    如果您无法确定格式的起点和终点,我建议您使用正则表达式。

    【讨论】:

    • 感谢您的回复,但有没有办法在 TextArea(不是 TextField)上实现这一点?
    • 看起来@Dave 已经为您介绍了这些内容。
    【解决方案2】:

    最好扩展 TextArea 并在子类中受保护的 textField 属性上执行您想要的操作。

    但您可以采取几个步骤从 TextArea 获取 textField。这是您需要的一些代码:

    import mx.core.IUITextField;
    import mx.core.mx_internal;
    
    use namespace mx_internal;
    
    var tf:IUITextField = textArea.getTextField();
    

    mx_internal 是访问 getTextField() 所必需的,您必须使用 IUITextField 作为 flex 包装 flash.text.TextField。它具有相同的界面和更多功能,因此您可以应用 Jeremy 的答案中的示例。

    【讨论】:

      猜你喜欢
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2019-02-05
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多