Получить размеры сцены без использования Singleton? - PullRequest
1 голос
/ 18 февраля 2011

В моем проекте есть несколько классов, которые не являются отображаемыми объектами, но им нужно знать о стадии моего проекта (stage.stageWidth, stage.stageHeight).

Есть ли простой способ передать эту информацию моим классам без , используя Singleton или передать эти элементы в качестве параметров в конструктор ??

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Вы можете сохранить ссылку на 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
0 голосов
/ 18 февраля 2011

Невозможно сделать это без единого тона, если у вас нет ссылки на отображаемый графический объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...