сбросить основной класс - PullRequest
0 голосов
/ 12 мая 2011
    package
    {
        public class Main extends Sprite {
        private var a=0;
        private var b=0;
        private var c=2;


        public function Main(){
            a=9;
            b=4;
            c=8;
        }
    }
}

Есть ли простой способ восстановить все мои переменные так, как они были при первой загрузке пакета, чтобы мне не приходилось просматривать все переменные и сбрасывать их вручную?

Спасибо.

Ответы [ 3 ]

1 голос
/ 12 мая 2011

Вы можете сохранить переменные при инициализации класса, а затем загрузить их обратно, что фактически приведет к сбросу. Попробуйте это:

package
{
    import flash.display.Sprite;

    public class Main extends Sprite
    {
        private var _saved:Array = [];

        public var awesome:Boolean = true;
        public var val:String = "hello";

        public function Main()
        {
            saveVars("awesome","val","alpha");

            awesome = false;
            alpha = 0.5;
            val = "there";

            loadVars();

            trace(alpha); // 1
            trace(val) ;// hello
            trace(awesome); // true
        }

        /**
         * Saves defined vars
         * @param ...args A list of variables to save
         */
        public function saveVars(...args):void
        {
            _saved = [];

            var i:String;
            for each(i in args)
            {
                _saved[i] = this[i];
            }
        }

        /**
         * Loads from last save
         */
        public function loadVars():void
        {
            var i:String;
            for(i in _saved)
            {
                this[i] = _saved[i];
            }
        }
    }
}

Это, очевидно, имеет преимущество, заключающееся в возможности сохранять ваши переменные в любой точке на протяжении всего времени выполнения приложения.

0 голосов
/ 19 января 2013

поздно?

Почему бы не создать новый класс, загруженный синтаксисами "Import" и "AddChild", куда вы помещаете переменные, которые удаляете и загружаете снова?

0 голосов
/ 12 мая 2011

Короткий ответ - нет.Однако одним из решений может быть назначение переменных вашего класса новым переменным, которые вы объявляете в своей функции.Это сохранит начальные значения и сделает их доступными для других функций.Истинный «сброс» произойдет только в том случае, если класс будет повторно создан.

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