Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Быстрый перезапуск приложения (http://www.flasher.ru/forum/showthread.php?t=175088)

AlexCooper 09.02.2012 16:02

Быстрый перезапуск приложения
 
Здравствуйте. Подскажите пожалуйста.
Есть приложение, начальные данные, библиотечные символы, что задаётся и пользователем после чего производяться вычисления и визуализация, подскажите код который сможет буквально в один клик вернуть все данные в исходные положения (можно без учёта пользовательских настроек). Очень-грубо говоря перемомать всё на 1-й кадр.

GBee 09.02.2012 16:17

Код AS3:

currentData = new Data();


fish_r 09.02.2012 16:23

Если я правильно понимаю ситуацию, то удалить всё со сцены, и заново запустить init() документ-класса. Обычно такая возможность закладывается на этапе проектирования...

AlexCooper 09.02.2012 16:42

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

Inet_PC 09.02.2012 16:45

Скорее всего такого способа не существует, хотя можно пользователя попросить перезапустить страничку.

AlexCooper 09.02.2012 16:47

Есть может какой-то недокументированный метод который позволяет перезапустить приложение. На сколько понимаю пока только один вариант, отследить все слушатели, удалить их и запустить родительский init

Добавлено через 30 секунд
Система не браузерная, визуализация будет только в плеере. Возможно даже с встроенным флеш-плеером (ехе)

fish_r 09.02.2012 17:21

Цитата:

Сообщение от AlexCooper (Сообщение 1061871)
Есть может какой-то недокументированный метод который позволяет перезапустить приложение. На сколько понимаю пока только один вариант, отследить все слушатели, удалить их и запустить родительский init

Возможно и не нужно отслеживать слушатели и пр. ссылки, т.к. при переинициализации ссылки обновятся и "старые объекты" останутся без ссылок, на самом верхнем уровне. Но хорошо бы отследить по профайлеру удаление )

Inet_PC 09.02.2012 17:28

В общем Вам придется (если это действительно нужно) делать все ручками. Никакой недокументированной функции нет.

silin 09.02.2012 17:49

как вариант: загрузить себя же в лоадер, добавить loader.content к stage, а себя удалить
в небольшом тесте работает, но насколько оно надежно трудно сказать
Код AS3:

private function reset_click(e:Event):void 
{
        var loader:Loader = new Loader();
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
        loader.loadBytes(this.loaderInfo.bytes);
}
 
private function loader_complete(e:Event):void
{
        stage.addChild(e.target.content);
        stage.removeChild(this);
}

Добавлено через 7 минут
а может лучше не хозяйничать в stage, а сразу держать флешку в лоадере в какой-нибудь обертке, а при надобности перезагружать из loaderInfo.bytes

Inet_PC 09.02.2012 18:19

У меня простой пример Ваш даже сразу не захотел работать. Правда через несколько перезапусков заработало. Но вот статические переменные не обнуляются, так что хоть что-то но писать придется. И не известно как это все будет на реальном проекте работать. Хотя сама идея здоровская))

AlexCooper 09.02.2012 18:26

Сейчас попробуем с лоадером.

fish_r 09.02.2012 19:01

Как ещё вариант (не учитывающий измененного сост. статиков, к сожалению) гл.класс приложения сделать второстепенным, пусть будет суперкласс-спрайт который будет создавать его, ложить его на сцену и потом убирать и пере создавать.

AlexCooper 09.02.2012 19:06

боюсь не хватит моего терпения со всема вытекающими траблами справиться. Придётся всё же в ручную.

Добавлено через 1 минуту
только что так пробывал. Но непойму в чём проблема, слушатели слетали, связи терялись.

AlexCooper 09.02.2012 19:22

Вложений: 1
Вложение 27562 кто сможет помогите в этой не травиальной задаче

fish_r 09.02.2012 19:59

Вообще, по хорошему, надо это предусматривать с самого начала. Т.е. процедура установки состояний эл-тов должна быть выделена, и при необходимости перезапущена. Ну, вот решение "на скорую" руку.
Там основное в файле Main.as.

AlexCooper 09.02.2012 20:13

Большое спасибо. На счёт проектирования полностью с Вами согласен, проблема в том что мне приходиться заниматься доработкой. Потому тут приходиться лишь вносить корректировки. Еще раз большое спасибо за оказанную помощь.


Часовой пояс GMT +4, время: 15:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.