2012-11-06 61 views
0

我试图从一个子类动态更改主舞台上的文本,但我无法弄清楚如何去做。我可以通过使用myTextArea.text =“Blarg”来改变主类中的字段文本,但是我很难从子类中做到这一点,谷歌没有帮助。从子类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