2010-08-15 4 views
0

하위 클래스의 수퍼 클래스에서 메서드를 호출하고 싶습니다. 특히 수퍼 클래스의 자식으로 서브 클래스를 추가 할 수 있지만 실제로 수퍼 클래스에 addChild를 입력하지 않고도 추가 할 수 있기를 원합니다.하지만 서브 클래스에 addChild를 입력해야합니다. 지금은 하위 클래스의 텍스트를 그려주는 수퍼 클래스에서 메서드를 호출하려고합니다. 여기 Actionscript : 하위 클래스에서 수퍼 클래스 메서드 호출

는 메인 클래스

package 
{ 
    import flash.display.*; 
    import flash.events.*; 
    public class OBJECT_square extends MAIN 
    { 
     public function CREATE():void 
     { 
      MAIN.DRAWTEXT(); 
     } 
    } 
} 

이 코드는 컴파일되지 않습니다 (슈퍼 클래스)

다음
package 
{ 
    import flash.display.*;  
    import flash.events.*; 
    import flash.text.*; 

    public class MAIN extends Sprite 
    { 
     public var SOMETEXT:TextField = new TextField(); 
     public function MAIN() 
     { 
      new OBJECT_square().CREATE(); 
     } 
     public function DRAWTEXT():void 
     { 
      SOMETEXT.text = "sometext"; 
      addChild(SOMETEXT); 
     } 
    } 
} 

는 OBJECT_square 클래스입니다 (서브 클래스), 난 가능성이에게 전화 "GET 정의되지 않은 메소드 "정적 유형 클래스가있는 참조를 통한 DRAWTEXT".

화면에 텍스트를 표시 할 수있는 방법이 있다는 것을 알고 있습니다. 난 그냥 수퍼 클래스 메서드를 호출하는 방법을 배워야합니다.

답변

1

static 제안에 대한 나의 나쁜

, 나는 명확하게 응답하기 전에 코드에 많은 관심을 지불하지 않았다 편집. 스테이지에 오브젝트가 추가되지 않아서 DRAWTEXT에 아무 것도 표시되지 않습니다. diplsay 객체를 보려면 addChild()를 호출해야합니다. 이 나쁜 적용되지 않습니다 보조 노트로

, 당신은 플래시와 액션 스크립트가 어떻게 작동하는지에 대한 기본적인 이해가 부족 것을 보여 질문을 많이 요청 된 구매 (또한 당신은을 것 같다 조금 너무 강요하여 원하는 방식대로 작동하지 못하게합니다.)

질문을 올리는 것은 항상 괜찮습니다. (질문에 대한 답을 제공하는 주제로만 작성하는 것이 좋지만) 좋은 책에서 기초를 배우는 것이 더 나을 것이라고 생각합니다. 자습서 등

이 두 게시물에는 좋은 자료에 대한 링크가 포함되어 있으므로 확인해야합니다.

Resources for Learning ActionScript 3.0 as a Professional Programmer

또한

https://stackoverflow.com/questions/168586/where-to-learn-actionscript-3-0

, 같은 이름을 가진 모든 사용자와 무엇인가? 지금은 1101이라는 이름을 가진 9 명의 사용자를 볼 수 있습니다 : https://stackoverflow.com/users/, 나는이 모두가 내 것이라고 생각합니다. 하나이면 충분합니다. 정말. 질문 할 때마다 새 사용자를 만들 필요가 없습니다. 또한 응답을 방해하는 사람들에게 몇 가지 피드백을달라고 요청한 질문을 따르십시오 (단 한 명의 사용자 만있는 경우 훨씬 쉽습니다). 그리고 당신이 어떤 반응에 대해 논평하고 싶을 때, 대답을 추가하는 대신에 코멘트를 남겨 둡니다.

+0

이제 그는 "수퍼 클래스"와 "서브 클래스"가 의미하는 바를 알았으므로 훨씬 더 의미가 있습니다. 그는 자식 구성 요소에서 부모 컨테이너에 액세스하는 방법을 묻고있었습니다. 답은 'parent'속성을 통해입니다. – Gunslinger47

2

그냥 정기적으로 전화하십시오. 클래스에서 기본 클래스를 확장하면 클래스는 모든 기본 클래스 메서드를 상속받습니다.

package 
{ 
    import flash.display.*; 
    import flash.events.*; 
    public class OBJECT_square extends MAIN 
    { 
     public function CREATE():void 
     { 
      DRAWTEXT(); 
     } 
    } 
} 
관련 문제