2013-07-18 2 views
0

AS3에서 OOP 및 setter/getter 및 재정의에 대한 자습서를 수행하고 있습니다.
이 자습서에서는 extendsspriteshapetextfield을 포함하는 버튼의 역할을하는 클래스를 만들었습니다.AS3 - 존재하지 않는 클래스 설정자를 재정의 하시겠습니까?

튜토리얼 저자가 보여 당신이과 같이 DisplayObject에서 모든 길 상속 클래스의 height 재산 (사용하는 경우 :

button.height = 100; 

만 버튼의 shape가 조정됩니다하지, 또한 textfield과 그 안에 들어있는 글씨체의 크기가 커져서 더 커질 것입니다. 저자는 이것을 원하지 않으며 글꼴 크기를 그대로 유지하면서 shape 만 크기를 줄이기를 원합니다. 다음과 같은 방법 :

override public function set height(h:Number):void { 
// Custom code here. 
} 

Adobe의 AS3 API 참조를 자세히 살펴본 결과 DisplayObject의 높이를 설정하는 method을 볼 수 없어 혼란 스럽습니다. height에 대해서만 property을 볼 수 있습니다.

override에 들어가기 전에 작성자가 setters and getters을 설명하므로 개념을 이해합니다. 그러나, overridesetter이 존재하지 않는 것 같은데 어떻게 이해할 수 있습니까?
나는 무엇보다도 먼저 무엇이든지 무효화 할 수 있다고 생각했을 것이다.

누군가이 기술을 설명 할 수 있다면 매우 감사 할 것입니다.

답변

2

속성이 항상 공용 변수 인 것은 아닙니다. 실제로 DisplayObjectheight 속성에는 setter 및 getter 함수가 모두 있으므로 setter가 있으므로 재정의 할 수 있습니다.

+0

하지만 공개적으로 볼 수 없습니까? 클래스의 메소드와 속성의'모두 '를 어디서 볼 수 있습니까? –

+0

아니요, 숨겨지지 않았습니다. [이 설명서] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html)를 확인하고 "height"속성을 찾은 다음 아래쪽을 따라 "implementation"을 찾습니다. 세터와 게터가있는 것을 볼 수 있습니다. – Vesper

+0

사실이 사이트에는 AS3의 수업에 대한 (거의) 완전한 문서가 있으며 공식적인 문서입니다. 그래서 서핑을해라. 내가 무엇인가를 찾아야 할 때 나는 그것을 항상 사용한다. – Vesper

관련 문제