2010-11-25 5 views
0

ich TextField- bin erstreckt meine eigene Implementierung, es zu schaffen, und es gibt einige Eigenschaften & Methoden Ich mag würde einfach von der Verwendung zu entfernen, zum Beispiel:Flash Builder ausblenden Klasse Eigenschaften von Inhaltshilfe (AS3)

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

ich möchte jetzt setTextFormat von Code-Hinting verstecken, so dass, wenn in einem anderen Klasse, Typ I:

var t:MyTextField = new MyTextField; 
t.set 

und drücken Sie anschließend Strg + Raum sehe ich nur setPropertyIsEnumerable (...) und setSelection (...), keine Spur von setTextFormat (...). Aber egal, was ich tue, es scheint immernoch, ich probierte @private metatag in asdoc, sowie einige erfundene (wie @remove, @disable, @ignore, @deprecated). Mit [Exlude] funktioniert nicht als, afaik, es funktioniert nur mit mxml. Gibt es eine Möglichkeit, diese Aufgabe tatsächlich zu erfüllen? Oder bin ich für immer mit nutzlosem und redundantem Code übrig? Irgendein Plugin vielleicht? (Ich weiß, ich kann es einfach so lassen wie es ist und verdoppeln Methoden nicht, aber trotzdem würde ich es lieber auf meine Art haben)

Antwort

2

Wenn Sie nicht davon abhängig sind, dass Ihre Klasse sich ausdehnt TextField können Sie wickeln das Textfeld in einem Sprite und nur "weiter" die Methoden, die Sie benötigen. Dadurch erhalten Sie immer noch die Methoden des Sprites in der Fertigstellung, aber zumindest würde es weniger geben.

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

    } 

} 
+0

Ja, das ist auch eine Lösung, die ich vorher benutzt habe, aber dann kommt das Problem der Vielzahl von Sprite-Methoden. Ich habe nur TextField als Fall erwähnt, aber ich habe eine Menge meiner eigenen "mxml-freien Komponenten" geschrieben, die alle die * Sprite * -Klasse erweitern, und ziemlich oft möchte ich einige Sprite-Methoden entfernen, wie Hinzufügen/Entfernen von Kindern sei dann fall hier. Also ist diese Lösung ein Nein für mich, obwohl es ein guter Beitrag ist. – Maurycy