AS3访问Monostate实例子项为空

时间:2015-06-16 20:49:19

标签: actionscript-3 reference monostate

我有一个Main实例,我应该可以在任何地方访问。 如果我想在级别上访问变量,我应该能够:

_root.level.my_value

但是,当我在地图中调用_root.level时,.level显示为null。

Main.as(班级文件)

package{
  import flash.display.MovieClip;
  public class Main extends MovieClip{

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

  public var level:MovieClip;

  public function Main(){
    _instance = this; //Monostate
    this.level = new Level();
  }
}} //package / class

Level.as

package{
  import flash.display.MovieClip;
  public class Map extends MovieClip{

  private var _root:MovieClip;

  public function Map(){
    _root = Main.instance
    trace(_root);
    trace(_root.level); //This should not be null
  }
}} //package / class

1 个答案:

答案 0 :(得分:0)

您永远不会实例化_instance,因此level永远不会被设置。

你的静态吸气器应该更像是这样的东西:

public static get instance():Main {
    if(!_instance){
        _instance = new Main();
    }
    return _instance;
}