2015-06-16 29 views
0

我有一個主實例,我應該可以在任何地方訪問。 如果我想訪問級別的變量,我應該能夠做:AS3訪問單實例子實例爲空

_root.level.my_value

但是.LEVEL是顯示了空當我在地圖調用_root.level。

Main.as(class文件)

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 
+0

這一切你的代碼與主交互?我看不出有什麼不妥之處。 – BadFeelingAboutThis

回答

0

你永遠實例您_instance,所以level永遠不會被設置。

你靜吸大概應該是更多的東西是這樣的:

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

我認爲這個假設是'Main'是文檔類 - 儘管我想這只是一個假設 – BadFeelingAboutThis

+0

哦,你是對的。我錯過了。 – Cadin