从子类Flash AS3动态更改文本字段?

时间:2012-11-06 21:44:40

标签: actionscript-3 flash oop class

我正在尝试从子类动态更改主舞台上的文本,但我无法弄清楚如何做到这一点。我可以通过使用myTextArea.text =“Blarg”来改变主类中的字段文本,但是我很难从子类中做到这一点并且谷歌没有帮助。

我的申请结构类似于:

//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";
        }

    }

}

我确信解决方案很简单,但我无法绕过它,我会很乐意帮助你!

1 个答案:

答案 0 :(得分: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);