Как добавить кнопку сброса на флэш-файл? - PullRequest
1 голос
/ 27 марта 2011

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

Ответы [ 4 ]

1 голос
/ 04 января 2016
btn.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void
{
    navigateToURL(new URLRequest(stage.LoaderInfo.url), '_level0');
}

Приведенный выше код перезагрузит ваш SWF-файл

1 голос
/ 27 марта 2011

Создайте экземпляр кнопки, скажем, resetBtn

resetBtn.onRelease = function(){
    //manually reset each variable
        userName = "";
        userAge = 0;
        .
        .
        .

        }

Это все еще использует функцию.

1 голос
/ 27 марта 2011

Как уже говорили другие, в Flash Player нет метода реального сброса.В зависимости от сложности проекта установка для каждого свойства и переменной значений по умолчанию может быть неуправляемой.

В этом случае вы можете рассмотреть два варианта:

Оберните ваш код в класс, в котором есть дополнительный метод deconstruct.Метод деконструкции должен присматривать за EventListeners, а что нет.Конструктор должен вызвать метод наподобие init, чтобы настроить все переменные.Таким образом, ваш код не удваивается.

Например:

package {
    import flash.events.Event;
    import flash.events.EventDispatcher;

    public class Foo extends EventDispatcher {

        private var _a:String;

        public function Foo()  {
            init();
        }   

        public function init():void {
            _a = "Default Value";
            addEventListener(Event.ENTER_FRAME, onEnter);
        }

        public function deconstruct():void {
            // Clean up time
            removeEventListener(Event.ENTER_FRAME, onEnter);
        }

        private function onEnter(e:Event):void {
            trace("frame");
        }

        public function get a():String { return _a; }       
        public function set a(value:String):void { _a = value; }
    }
}

Затем на основной временной шкале

var foo:Foo = new Foo();

resetButton.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent):void {
    foo.deconstruct();
    foo = new Foo();
}

Это гарантирует, что вы действительно сбрасываете

1 голос
/ 27 марта 2011

Просто добавьте кнопку на сцену в последнем кадре (или там, где вы хотите), скажем, «resetButton_mc».

resetButton_mc.addEventListener(MouseEvent.CLICK, reset);

function reset(event:MouseEvent):void
{
     //Reset all variables and send the playhead to the appropriate frame
};

Ура, Rob

...