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;
}
}
}