覆盖setTextFormat as3

时间:2011-12-03 16:53:44

标签: flash actionscript-3

我编写了一些使用setTextFormat将格式应用于textFields的代码。我现在需要更改它,所以如果文本字段有一个特定的标题,它会添加到格式化(将其大写)。

我可以使用几种解决方法,但理想情况下,我想为setTextFormat或textFormat类创建一个覆盖,检查文本字段的名称,如果它是一个特定的名称,则在应用所有其他指定格式之前将其大写。我知道如何覆盖诸如(宽度或高度)之类的setter,但是无法找到覆盖特定属性的任何信息。

有人可以给我任何指示吗?

2 个答案:

答案 0 :(得分:0)

[[编辑]]

没有意识到问题是参考AS2。以下答案是AS3。


我建议扩展TextField对象并覆盖set defaultTextFormat方法。

import flash.text.TextField;
import flash.text.TextFormat;

class MyTextField extends TextField
{

    public function MyTextField()
    {
        super();
    }

    override public function set defaultTextFormat(value:TextFormat):void
    {
        super.defaultTextFormat = value;
    }

}

祝你好运!

答案 1 :(得分:0)

 public class MyField extends TextField {
     public function MyField() {
        super();
     }
     override public function setTextFormat(format:TextFormat):void {
          if (this.name == "someName") {
            this.capitalize();
          }
          super.setTextFormat(format);
     }
     private function capitalize():void
     {
         //code to capitalize text
     }

 }