【问题标题】:How do I change the color of a part of a word with actionscript?如何使用 actionscript 更改部分单词的颜色?
【发布时间】:2012-07-06 14:44:14
【问题描述】:

我正在做一个练习,孩子们必须将文本字段拖到正确的框中。 文本字段包含我从 xml 加载的单词。 当他们将文本字段放入正确的框中时,我想更改文本字段中部分文本的颜色。 这必须是一个特定的字母/字母组合。

例如:他们必须学习 eee 之间的区别。如果他们在正确的框中放置一个带有单词“十”的文本字段,我希望“t”和“n”保持黑色,而“e”需要变成蓝色。 但是如果他们把“tween”这个词放在正确的框中,字母“ee”需要变成蓝色。

我一直在尝试设置字符串一部分的 textFormat,但我似乎无法使其正常工作。这也很困难,因为两个选项(e 和 ee)的字符数不同。 但我没有得到任何地方。

tldr; 我想更改文本字段中部分文本的颜色

【问题讨论】:

    标签: actionscript-3 flash-cs5 string-formatting


    【解决方案1】:

    怎么样:

    //setup a textformat
    var textFormat:TextFormat = new TextFormat();
    
    var startIndex:int = someString.indexOf("e");
    
    textField.setTextFormat(textFormat,startIndex,startIndex+1);
    

    【讨论】:

      【解决方案2】:

      要更改字符串中间某些字符的颜色,请使用 html: http://cartoonsmartblog.wordpress.com/2009/08/28/coloring-html-text-in-flash-actionscript-3-quick-code-note/

      (顺便说一句,只使用单引号和双引号,而不是 \u0022 丑)

      【讨论】:

      • 我知道这是如何工作的,只是我动态加载了我的文本字段。那么如何定位字符串中需要更改的部分,如何知道需要更改的字符串长度?
      • 正则表达式、string.search()、string.match()、string.index()等
      【解决方案3】:

      我得出的结论是,更改单词部分颜色的最佳方法是使用 Stylesheet 类。我从 Stackoverflow 上的某人那里获取了下面的 sn-p,但我忘记了它是谁。对不起,不管你是谁。

      var style:StyleSheet = new StyleSheet();
      var styleObj:Object = new Object();
      
      styleObj.fontSize = "bold";
      styleObj.color = "#FF0000";
      
      style.setStyle(".red",styleObj);
      
      var tf:TextField = new TextField(); 
      
      tf.styleSheet = style;
      tf.htmlText = "fox is <span class='red'>red</span>";
      
      
      addChild(tf);
      

      【讨论】:

        猜你喜欢
        • 2023-04-02
        • 2011-01-03
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多