0

我正在扩展 TextField 以创建我自己的实现,并且有一些属性和方法我想简单地从使用中删除,例如:

override public function setTextFormat(format:TextFormat,[...]):void{}

我现在想从代码提示中隐藏 setTextFormat,所以当在其他类中,我输入:

var t:MyTextField = new MyTextField;
t.set

然后按ctrl+space 我只看到setPropertyIsEnumerable(...)setSelection(...),没有setTextFormat(...)的痕迹。但无论我做什么它仍然出现,我在 asdoc 中尝试了@private 元标记,以及一些虚构的(如@remove、@disable、@ignore、@deprecated)。使用[Exlude]也不起作用,因为它只适用于 mxml。有什么方法可以真正完成这项任务吗?还是我永远留下无用和冗余的代码?也许是一些插件?(我知道我可以保持原样,不要重复方法,但是,尽管如此,我宁愿按照自己的方式行事)

4

1 回答 1

2

如果您不依赖于扩展TextField您的类,则可以将文本字段包装在 a 中Sprite,并且仅“转发”您需要的方法。这仍然会在完成中为您提供精灵的方法,但至少会更少。

package {
    import flash.display.Sprite;
    import flash.text.TextField;

    public class WrappedTextField extends Sprite {
        private var _textfield:TextField;

        public function WrappedTextField() {
            _textfield = new TextField;
            addChild(_textfield);
        }

        public function get text():String {
            return _textfield.text;
        }

        public function set text(value:String):void {
            _textfield.text = value;
        }

    }

}
于 2010-11-25T11:42:15.770 回答