English 中文(简体)
我该如何为以编程方式绘制的TextField使用预定义的CSS样式?
原标题:
  • 时间:2009-01-16 21:42:15
  •  标签:

我有一个图形应用程序,它将文本呈现为BitmapData-现在它被硬编码为使用特定字体,这对于测试来说很好,但是对于生产,我真的需要它可以进行样式设置。

应用程序的其余部分使用特定字体,我希望只能使用样式名称(字体的样式)来创建一个 TextFormat 对象,以传递给嵌入的 TextField 对象中的文本精灵。

所以现在大致的顺序是:

        var format:TextFormat = new TextFormat();
        format.font = "Arial";
        format.color = 0xFF0000;
        format.size = 12;
        // tf is a previously instantiated TextField()
        tf.defaultTextFormat = format;
        tf.autoSize = TextFieldAutoSize.LEFT;

        tf.text = _text;

然后,它简单地被绘制为:

        bmpData.fillRect(srcRect,0x00000000);
        bmpData.draw(tf);

现在这很恶心,那么我怎么从我的应用程序CSS定义中获取StyleSheet或TextFormat?我看过StyleManager、CSSStyleDeclaration,没有一样是很贴切的。有人知道这里的顺序吗?

最佳回答

您可以尝试类似以下的东西。

如果您在CSS文件中设置了名为TextFormat的东西。

var css:CSSStyleDeclaration = StyleManager.getStyleDeclaration("TextFormat")
yourComponent.setStyle("textAlign", getStyle("headerTextAlign"));
yourComponent.setStyle("fontFamily", getStyle("fontFamily"));

这应该能满足你的要求。

问题回答

基本上,您只需将元数据标签[style]添加到自定义类中,以定义自定义样式属性,将这些属性的值指定为css中的值,并在代码中使用getStyle("myCustomStylePropertyName")以获取在css中设置的值。

查看Flex 3 帮助:示例:创建样式属性以获取更多信息。





相关问题
热门标签