在ActionScript 3中为自定义TextArea应用样式

时间:2010-04-05 15:54:14

标签: flex actionscript-3 textarea stylesheet

我有以下代码在ActionScript 3中为自定义TextArea创建和应用一些样式。

public class MyCustomTextArea extends TextArea
{
  override protected function createChildren():void
  {
    super.createChildren();
    this.styleSheet.setStyle("sup", { display: "inline", fontFamily: "ArialSup", fontSize:"12"});
    this.styleSheet.setStyle("sub", { display: "inline", fontFamily: "ArialSub", fontSize:"12"});
    this.setStyle("fontFamily", "Arial");  
  }
}

我对此代码有两个问题。

当我创建类的实例时,this.styleSheet始终为null。如果将this.styleSheet初始化为新的StyleSheet()以避免此问题,则TextArea实例似乎无法识别可与htmlText属性一起使用的任何HTML标记。

任何人都可以帮忙解决这两个问题吗?感谢。

1 个答案:

答案 0 :(得分:2)

首先 - 默认情况下,TextArea组件的styleSheet属性为null - 您所看到的是预期的行为。

你也是以一种不寻常的方式创建你的css样式表 - 也许这就是你的问题来自哪里?我会尝试加载或定义内联样式表以应用于您的文本区域。这里有一个加载和应用样式表的示例:http://blog.flexexamples.com/2008/03/22/applying-a-cascading-style-sheet-to-a-textarea-control-in-flex/

另外,什么是ArialSub和ArialSup?如果这些无效,则字体名称flex将无法识别它们并使用它们。