AS3 Доступ к экземпляру Monostate является нулевым
У меня есть экземпляр Main, к которому я должен иметь доступ в любом месте. Если я хочу получить доступ к переменной на уровне, я должен быть в состоянии сделать:
_root.level.my_value
Тем не менее,.level показывает ноль, когда я вызываю _root.level на моей карте.
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 ответ
Вы никогда не создаете свой экземпляр _instance
, так level
никогда не устанавливается.
Ваш статический геттер, вероятно, должен выглядеть примерно так:
public static get instance():Main {
if(!_instance){
_instance = new Main();
}
return _instance;
}