0

私は TextField を拡張して独自の実装を作成していますが、いくつかのプロパティとメソッドを使用から削除したいだけです。

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

setTextFormat をコードヒントから非表示にしたいので、他のクラスで次のように入力します。

var t:MyTextField = new MyTextField;
t.set

ctrl+space を押すと、 setPropertyIsEnumerable(...)setSelection(... ) のみが表示され、 setTextFormat(...)の痕跡はありません。しかし、何をしてもまだ表示されるので、asdoc で @private メタタグを試してみました。[Exlude] の使用も機能しません。私の知る限り、mxml でのみ機能します。このタスクを実際に達成する方法はありますか?それとも、役に立たない冗長なコードが永遠に残されているのでしょうか? 多分いくつかのプラグイン?(私はそのままにしておくことができ、メソッドを2倍にすることはできませんが、それにもかかわらず、私はそれを自分のやり方でやりたいと思っています)

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 に答える