【问题标题】:Update TextField StyleSheet doesn't make any effect更新 TextField StyleSheet 没有任何效果
【发布时间】:2012-03-07 14:39:19
【问题描述】:

我正在尝试更新一些 TextField 的样式,例如。颜色,字体大小,字体家族。 我正在通过以下方式创建字段:

var textField:TextField = new TextField();

var style:StyleSheet = new StyleSheet();
style.parseCSS("p{color: #000000; fontFamily: System; fontSize: 20px;}");

        textField.styleSheet = style;

        textField.selectable = false;
        //textField.embedFonts = true;
        textField.antiAliasType = AntiAliasType.ADVANCED;           

        ///textField.defaultTextFormat = myFormat;
        textField.text = text;
        textField.wordWrap = true;

        textField.width = 800;
        textField.height = 40;

        some_other_mc.addChild(textField);

然后我尝试更新 textField:

   private function SetStyle(name:String, value:String):void {

        var current_styles:Object = _active_text_field.styleSheet.getStyle('p');

        switch(name) {

            case 'color':
                current_styles.color = value;
            break;

            case 'fontSize':
                current_styles.fontSize = value;
            break;

            case 'fontFamily':
                current_styles.fontFamily = value;
            break;

        }

         _active_text_field.styleSheet.setStyle('p', current_styles);

    }

_active_text_field 链接到 textField

每个触发器 SetStyle 都不做任何更改。找了半天没找到bug。

请感谢您的帮助:)

【问题讨论】:

  • 您是否看到了您首先为文本字段设置的样式?
  • 我尝试了您的代码和您的 SetStyle 函数,并且按预期工作...您确定您的字符串“文本”变量中的文本具有 HTML

    (段落)标签?
  • 我使用了“current_styles.color = '#'+value;”和颜色的变化,但我仍然无法改变字体大小
  • 检查一下,它对我来说工作正常:wonderfl.net/c/f3iX
  • @danii 即使在你的脚本字体大小没有改变,只有字体:/

标签: actionscript-3 apache-flex ide stylesheet


【解决方案1】:

我建议你拿这个简单的例子

package {
import flash.display.Sprite;
import flash.text.StyleSheet;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;

public class StyleSheetExample extends Sprite {

    public function StyleSheetExample() {
        var style:StyleSheet = new StyleSheet();

        var heading:Object = new Object();
        heading.fontWeight = "bold";
        heading.color = "#FF0000";

        var body:Object = new Object();
        body.fontStyle = "italic";

        style.setStyle(".heading", heading);
        style.setStyle("body", body);

        var label:TextField = new TextField();
        label.styleSheet = style;
        label.htmlText = "<body><span class='heading'>Hello </span>World...</body>";
        addChild(label);
    }
  }
}

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 2019-06-19
    • 2017-07-18
    • 2010-10-17
    • 2012-11-25
    • 2016-04-30
    相关资源
    最近更新 更多