2012-11-06 1 views
0

메인 클래스의 텍스트를 하위 클래스에서 동적으로 변경하려고하지만이를 수행하는 방법을 알 수 없습니다. myTextArea.text = "Blarg"를 사용하여 메인 클래스의 필드 텍스트를 바꿀 수는 있지만, 서브 클래스에서 수행하는 것으로 난처한 상황입니다. Google은 도움이되지 못했습니다.하위 클래스 인 Flash AS3에서 동적으로 텍스트 필드를 변경 하시겠습니까?

//Main class file 
package { 

    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.display.Stage; 

    public class Main extends Sprite { 

     static public var mainStage:Stage; 

     public function Main() { 
      if (stage) stageLoader(); 
      else addEventListener(Event.ADDED_TO_STAGE, stageLoader); 
     } 

     private function stageLoader() { 
      mainStage = this.stage; 
      removeEventListener(Event.ADDED_TO_STAGE, stageLoader); 

      //This is working just fine 
      myTextArea.text = "Blarg"; 
     } 

    } 

} 

//Sub class 
package { 

    import flash.display.Sprite; 

    public class OtherClass extends Sprite { 

     public function OtherClass() { 
      //This throws "Access of undefined property myTextArea" error 
      myTextArea.text = "Blarg"; 
     } 

    } 

} 

내가 해결책은 간단하다 확신 해요,하지만 난 그냥 주위에 내 머리를 정리하고 수 없습니다 나는 당신의 도움을 사랑하는 것 :

내 응용 프로그램 구조는 비슷합니다!

답변

2

기본 타임 라인에 대한 링크가 필요한 클래스를 생성 할 때 생성자에서 스코프를 인수로 전달합니다. 이런 식으로 뭔가 :

package { 

    import flash.display.Sprite; 

    public class OtherClass extends Sprite { 

     public function OtherClass(_path) { 
      //This throws "Access of undefined property myTextArea" error 
     _path.myTextArea.text = "Blarg"; 
     } 

    } 

} 메인 클래스의 다음

:

var _otherClass = new OtherClass(this); 
+0

내 문제에 대한 좋은, 간단한 솔루션입니다. 고마워요! :) – user440876

관련 문제