2010-11-25 5 views
0

내가 내 자신의 구현을 만들 TextField를 확장하고, 나는 단순히 사용에서 제거하려는 & 방법, 예를 들어 일부 속성을이 있습니다 :플래시 빌더 숨기기 클래스 속성이 지원 (AS3)

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

나는 다른 클래스에서, 내가 입력 할 때, 그래서, 코드 힌트로부터는 setTextFormat을 숨기기 위해 지금 싶습니다 : 만 setPropertyIsEnumerable (...)를 참조

var t:MyTextField = new MyTextField; 
t.set 

을 그리고 CTRL + 공간을 명중setSelection (...), 추적 없음 setTextFormat (...)입니다. 그러나 내가 무엇을해도 여전히 나타나는 것처럼, @drive, @disable, @ignore, @deprecated와 같은 일부 메이크업뿐만 아니라 asdoc에서 @private 메타 태그를 시도했다. 사용 [제외]는 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에 대해서만 언급했지만, Sprite * 클래스를 모두 확장 한 "mxml-free"구성 요소를 썼습니다. 어린이 추가/제거와 같은 일부 Sprite 메서드를 제거하고 싶습니다. 여기에있는 경우입니다. 따라서이 솔루션은 훌륭한 기여인데도 불구하고 나에게 도움이되지 못합니다. – Maurycy