实例类如何访问Document类?
即使在使用Flash中的“属性”栏命名Document类后,尝试从其他类访问它也通常会失败,表示“尝试访问未定义的属性…
一个解决方案总是将Document类转换为自身!例如.
Main(Main).globalMethod();
但是有时候甚至这个恒星都失败了,然后除了显而易见之外,通常都没有出路.
class Other{ var parentClass:Main; public function Other(parent:Main){ parentClass = parent; // pointer to the Main class in a local var! Main(parentClass).globalMethod(); } }
解决方法
您可以在文档类中使用单例(Main,在您的示例中),这允许您从任何地方访问该实例.
public class Main extends Sprite { private static var _instance:Main; public static function get instance():Main { return _instance; } public function Main() { _instance = this; // etc... } // etc... }
然后,您访问主实例,如下所示:
public class Other { public function Other() { Main.instance.usefulInstanceMethod(); } }
文档类是单例模式的一个很好的候选者,因为通常只应该有可用的实例.