我该怎么做?
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'。
谢谢!
答案 0 :(得分:0)
在这种情况下,名为SubClass
的类通过组合使用Unit
类,而不是继承。因此,Unit
类对SubClass
或SuperClass
或其任何属性(如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
您实际如何解决这个问题取决于您的使用案例。但是没有根本的捷径可以做你要求的事情。