实例化类如何访问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(); } }
aaaidan.. 22
您可以为文档类使用单例(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... }
然后你Main
像这样访问实例:
public class Other { public function Other() { Main.instance.usefulInstanceMethod(); } }
文档类是单例模式的一个非常好的候选者,因为通常应该只有实例可用.
您可以为文档类使用单例(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... }
然后你Main
像这样访问实例:
public class Other { public function Other() { Main.instance.usefulInstanceMethod(); } }
文档类是单例模式的一个非常好的候选者,因为通常应该只有实例可用.