![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 430
|
Здравствуйте.
Есть карта, на которой пользователь может производить некоторые действия (ставить точки, рисовать полигоны и прочее). Нужно в приложении организовать возможность, после какого-либо действия, вернуться в предыдущее, пред-предыдущее (и т.д.) состояние. Может кто-нибудь сталкивался с таким вопросом. Подскажите как лучше сделать. Копировать карту в память каждый раз при любом изменении? Или есть другие варианты? |
|
|||||
|
Смотря каким образом у вас производятся "некоторые действия". Можно к каждому "конструктору" отображаемой части действия написать "деструктор", с теми же параметрами. И при каждом "совершении" действия (вызова "конструктора" с определёнными параметрами), банально кидать в массив параметры действия. При вызове "шага назад" - просто передавать соответствующему деструктору последние добавленные в массив параметры
__________________
Дебаггер не предлагать |
|
|||||
|
Регистрация: May 2010
Сообщений: 543
|
Цитата:
![]()
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 150
|
http://www.rsdn.ru/article/dotnet/backforward.xml
Тут принципы реализации, на ActionScript перевести думаю труда не составит |
|
|||||
|
Команда здесь, мне кажется, самое то.
__________________
http://www.chessmax.ru |
|
|||||
|
Подхода тут всего 2:
- список состояний/изменений сохраняем данные на каждом изменении и при откате разбираем switch-ами - список комманд при редактоировании применяем комманды, которые сами запоминают нужные данные для отката. Первый подход проще. Второй гибше и расширяемей. А что запоминать - изменения или все состояние - это зависит от требуемых ресурсов. Запоминать все проще, но если дорого - надо запоминать только изменения. Последний раз редактировалось expl; 24.01.2012 в 21:07. |
|
|||||
|
.
|
команд [x]
http://en.wikipedia.org/wiki/Command_pattern Command objects are useful for implementing: Multi-level undo и прочая. Мементо не предлагаю, т.к. он избыточен. Последний раз редактировалось dimarik; 24.01.2012 в 22:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:34. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| ctrl+z , отменить действие |
| Опции темы | |
| Опции просмотра | |
|
|