Actionscript 3.0 - 从超类获取变量到新对象

时间:2012-08-27 15:58:12

标签: actionscript-3 flash actionscript

我该怎么做?

public class SuperClass extends MovieClip {
  public static var test:String = 'Hello world';
}

public class SubClass extends SuperClass {
  public function SubClass() {
    var unit = new Unit();
    addChild(Unit);
  }
}

public class Unit extends MovieClip {
  public function Unit() {
    //Get variable:test from SuperClass??
    trace(SubClass.test); //Error
  }
}

希望你明白我想做什么? 想要在SubClass中添加的新单元中从SuperClass获取变量'test'。

谢谢!

1 个答案:

答案 0 :(得分:0)

在这种情况下,名为SubClass的类通过组合使用Unit类,而不是继承。因此,Unit类对SubClassSuperClass或其任何属性(如test属性)一无所知。

但是,您可以通过它的构造函数将值传递给Unit类(或者只是将值直接设置到Unit类的属性上):

(仅显示最后两个班级)

public class SubClass extends SuperClass {

  public function SubClass() {
    var unit = new Unit(test);
    addChild(Unit);
  }
}

public class Unit extends MovieClip {

  private var test:String;

  public function Unit(test:String) {
    this.test = test;
  }
}

<强> [编辑]

由于您的Unit类需要访问SubClass(和/或SuperClass)的许多属性,因此您可能只想将SubClass的实例传递给{{ 1}}:

Unit

您实际如何解决这个问题取决于您的使用案例。但是没有根本的捷径可以做你要求的事情。