2011-02-18 32 views
1

我在我的項目中有幾個類不是顯示對象,但他們需要知道我的項目階段(stage.stageWidth,stage.stageHeight)。獲取舞臺尺寸而不使用Singleton?

是否有一種簡單的方法將這些信息傳遞給我的類而不使用使用Singleton或將這些項作爲參數傳遞給構造函數?

回答

0

如果沒有對所顯示的圖形對象的引用,沒有單例就沒有辦法做到這一點。

+1

其實你可以全球化這麼你的答案並不完全正確。 – Taurayi 2011-02-18 18:16:14

1

您可以將階段的引用存儲在類的靜態屬性中,該屬性可以從應用程序中的任何類訪問。以下是這方面的一個例子:

GlobalVars.as:

package 
{ 
    import flash.display.Stage; 

    public class GlobalVars 
    { 
     public static var stage:Stage; 

    }// end class 

}// end package 

Main.as:

package 
{ 
    import flash.display.Sprite; 

    public class Main extends Sprite 
    { 
     private var _stageAccessor:StageAccessor; 

     public function Main():void 
     { 
      init(); 

     }// end function 

     public function init():void 
     { 
      GlobalVars.stage = stage; 

      _stageAccessor = new StageAccessor(); 
      _stageAccessor.traceStageWidth(); // output: 
      _stageAccessor.traceStageHeight(); // output: 

     }// end function 

    }// end class 

}// end package 

StageAccessor.as:

package 
{ 
    import flash.display.Stage; 

    public class StageAccessor 
    { 
     public function StageAccessor():void {}; 

     public function traceStageWidth():void 
     { 
      trace(GlobalVars.stage.stageWidth); 

     }// end function 

     public function traceStageHeight():void 
     { 
      trace(GlobalVars.stage.stageHeight); 

     }// end function 

    }// end class 

}// end package