不使用Singleton获取舞台尺寸?

时间:2011-02-18 16:14:55

标签: actionscript-3

我的项目中有一些不是显示对象的类,但是他们需要知道我的项目的阶段(stage.stageWidth,stage.stageHeight)。

是否有一种简单的方法可以将此信息传递给我的类,而不使用使用Singleton或将这些项作为参数传递给构造函数?

2 个答案:

答案 0 :(得分:1)

您可以在类的静态属性中存储对stage的引用,该属性可以从应用程序中的任何类访问。以下是此示例:

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

答案 1 :(得分:0)

如果您没有对显示的图形对象的引用,则没有单例也无法执行此操作。