我有以下代码在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标记。
任何人都可以帮忙解决这两个问题吗?感谢。
答案 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将无法识别它们并使用它们。