保存Main的静态实例 - Actionscript 3

时间:2013-11-22 11:44:40

标签: actionscript-3 flash-cs6

所以我需要从我的文档(Main.as)类中访问信息。 我尝试通过保存Main类的静态实例来实现这一点。

private static var _instance:Main;
public static function get instance():Main { return _instance; }

public function Main() {
    _instance = this;
}

然后当在另一个类中我尝试使用它时,我得到一个空引用错误。

public function InputController():void {
    main = Main.instance;
    main.stage.addEventListener(KeyboardEvent.KEY_DOWN, OnKeyPress);
    main.stage.addEventListener(KeyboardEvent.KEY_UP, OnKeyRelease);
}

我在main.stage.addEventListener行上收到错误。

2 个答案:

答案 0 :(得分:0)

如果您有时间轴编码,您可以在第一个关键帧处使用_instance=this(应该可以访问,因为主时间轴是文档类的一部分)来实例化您的静态变量,并通过属性从其他地方引用它。 / p>

答案 1 :(得分:-1)

您尝试在不实例化的情况下返回实例。使用以下代码首先实例化类。

private static var _instance:Main;
public static function get instance():Main 
{ 
  if(_instance == null)
    _instance = new Main();
  return _instance; 
}