2010-11-25 89 views
0

我伸出文本字段创建我自己的实现它,并且有一些属性&方法,我想简单地从使用中删除,例如:Flash Builder中隐藏类从内容属性辅助(AS3)

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

现在我想从代码提示隐藏调用setTextFormat,所以当,在其它的类,I型:

var t:MyTextField = new MyTextField; 
t.set 

,然后按Ctrl +空格我只看到setPropertyIsEnumerable(...)setSelection(...),没有跟踪setTextFormat(...)。但无论我做什么,它仍然出现,我尝试了asdoc中的@private元标记,以及一些化妆(比如@remove,@disable,@ignore,@deprecated)。使用[例外]不起作用,afaik只适用于mxml。 有什么方法可以真正完成这项任务吗?还是我永远留下无用和冗余的代码?一些插件也许? (我知道我可以保留原样,不要使用双重方法,但是,我宁愿按照我的方式)

回答

2

如果您不依赖于您的课程延伸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; 
     } 

    } 

} 
+0

是的,这也是我以前使用过的解决方案,但后来出现了众多Sprite方法的问题。我只提到了TextField,但我写了一大堆我自己的“mxml-free组件”,这些组件都扩展了* Sprite *类,我经常想删除一些Sprite方法,比如添加/删除子元素,这会那么在这里的情况。所以这个解决方案对我来说是不适用的,尽管它是一个很好的贡献。 – Maurycy 2010-11-25 12:04:11