2011-02-18 33 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