como tornar as classes que não pertencem à classe de documentos "atentas" aos componentes do palco no Flash AS3?

Estou trabalhando em um jogo de aventura de texto que terá pelo menos alguns componentes (uma área de texto para narrativa e entrada de texto para entrada do usuário) no palco o tempo todo. Portanto, eu criei esses componentes estaticamente no ambiente de design WYSIWYG do Flash. Eu dei a eles nomes de instância "myTA" e "myTI", respectivamente. Consegui fazer com que minha classe principal (a classe de documentos do palco) interaja com eles (adicionando texto dinamicamente um caractere de cada vez, como uma máquina de escrever em tempo de execução), mas outras classes no mesmo pacote não parecem reconhecer os componentes do palco. Abaixo está o código relevante:

Caso A, no qual tudo acontece dentro da classe Principal:

package { 
    public class Main extends MovieClip { 
      public var myTA:TextArea; 
      var displayedChar:String = new String(); 
      var textToWrite:String = new String(); 
      var i:int = 0; var intervalId:uint; 
      var done:int = 0; 

      public function Main { 
       setUpTA(); 
      } 

      public function setUpTA(){ 
       myTA.text = "" + playAtInterval("Hello Player!"); 
      }         

      public function writeCharsSlowly(){     
        textToWrite = arguments[0];     
        displayedChar=textToWrite.substring(i,i+1); 
        myTA.appendText(displayedChar);                             
        i++;     
        if (i == textToWrite.length) {         
          done = 1;         
          clearInterval(intervalId);     
        }             
      }                 

      public function playAtInterval(theText:String) {                
        i = 0;              
        intervalId = setInterval(writeCharsSlowly, 100, theText);           
      }  
    } 
}

Caso B, em que Main chama uma segunda classe 'TypeWriter' para lidar com a impressão da máquina de escrever:

A Principal:

package { 
    public class Main extends MovieClip { 
      public var myTA:TextArea; 
      public var myTI:TextInput; 
      var str:String = new String(); 

      public function Main{ 
        testTypeWriter(); 
      } 

      public function testTypeWriter(){ 
        typeW.playAtInterval("Hello Player");
        typeW.addEventListener(MouseEvent.CLICK,testTypeWriter2);
        typeW.addEventListener(KeyboardEvent.KEY_DOWN,inputEngine2) 
        addChild(typeW); 
      } 

      public function testTypeWriter2(event:MouseEvent){ 
        if (myTI.text == "a") {   
          typeW.playAtInterval("yo");  
        } else {   
          typeW.playAtInterval("Greetings, I am a test...");  
        }             
        addChild(typeW); 
      } 

      public function inputEngine2(event:KeyboardEvent){ 
        str = String.fromCharCode(event.charCode); 
        myTI.appendText(str); 
      }

Máquina de escrever:

package { 
    public class TypeWriter extends MovieClip { 
      public var myTI:TextInput; 
      public var myTA:TextArea; 
      var i:int = 0; 
      var done:int = 0; 
      var intervalId:uint; 
      var displayedChar:String = new String(); 
      var textToWrite:String = new String(); 

      public function TypeWriter(){ 
        ///nothing here 
      } 

      public function writeCharsSlowly(){     
        textToWrite = arguments[0];     
        displayedChar = textToWrite.substring(i,i+1);
        myTA.appendText(displayedChar);                             
        i++;     
        if (i == textToWrite.length) {         
          done = 1;         
          clearInterval(intervalId);     
        }             
      }                 

      public function playAtInterval(theText:String) {                
        i = 0;              
        intervalId = setInterval(writeCharsSlowly, 100, theText);           
      }  
    } 
}

O caso A funciona, mas no caso do B Flash estar fornecendo o erro "Erro # 1009: não é possível acessar uma propriedade ou método de uma referência de objeto nulo" e anota a primeira linha no TypeWriter onde tento operar no myTA como o problema.

como posso tornar outras classes além da classe de documentos 'cientes' dos componentes de estágio existentes?

Obrigado,

CCJ

questionAnswers(5)

yourAnswerToTheQuestion