Flash Builder скрывает свойства класса из помощника по содержимому (AS3)

Я расширяю TextField для создания своей собственной реализации, и есть некоторые свойства и методы, которые я хотел бы просто удалить из использования, например:

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

Теперь я хотел бы скрыть setTextFormat от хинтинга кода, поэтому, когда в каком-то другом классе я набираю:

var t:MyTextField = new MyTextField;
t.set

И нажав Ctrl + пробел, я вижу только setPropertyIsEnumerable (...) и setSelection (...), никаких следов setTextFormat (...). Но независимо от того, что я делаю, это все равно появляется, я пробовал @private metatag в asdoc, а также некоторые готовые (такие как @remove, @disable, @ignore, @deprecated). Использование [Exlude] также не работает, поскольку, afaik, оно работает только с mxml. Есть ли способ на самом деле выполнить эту задачу? Или я навсегда остался с бесполезным и избыточным кодом? Может быть, какой-нибудь плагин? (Я знаю, что могу просто оставить все как есть и не дублировать методы, но, тем не менее, я бы предпочел, чтобы все было по-своему)

1 ответ

Если вы не зависите от расширения вашего класса TextField Вы можете обернуть текстовое поле внутри 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;
        }

    }

}
Другие вопросы по тегам