Обновление таблицы стилей TextField не дает никакого эффекта - PullRequest
0 голосов
/ 07 марта 2012

Я пытаюсь обновить стиль TextField, например. color, fontSize, fontFamily. Я создаю поле по:

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_ 101 * * связано с textField .

Каждый триггер SetStyle не вносит изменений. Я не могу найти ошибку в течение долгого времени.

Пожалуйста, и спасибо за любую помощь:)

1 Ответ

0 голосов
/ 07 марта 2012

Предлагаю вам взять этот простой образец

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);
    }
  }
}
...