|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Как организовать "отменить", "вернуть" ?
Делаю прогу на АС3, векторный редактор типа Визио...
Рисование линий, добавление новых элементов из библиотеки, редактирование их свойств... Подскажите как реализовать команды "отменить", "вернуть"? подразумеваю, что необходимо добавление новых элементов, редактирование старых и т.д. записывать в массив совместно с "предыдущим" состоянием системы - но уж больно это много в памяти хранится будет. В системе порядка 5000 объектов. |
|
|||||
Modus ponens
|
Искать по ключу "автоматизация". Т.е. вся идея заключается в том, что для автоматизированого тестирования ПО контролы нужно снабжать альтернативным способом управления дублирующим то, что может сделать с ними пользователь. В таком случае вы будете записывать действия пользователя и потом сможете их автономно воспроизвести, ну или даже написать сценарий автоматизирующий работу программы (как правило это используется для тестирования). Во Флексовом фреймворке есть какие-то зачатки этого... а так мне больше особо нигде ничего внятного на AS3 не попадалось.
__________________
Hell is the possibility of sanity |
|
|||||
можно два пути:
- записывать действия пользователя и при необходимости воспроизводить - или хранить изменения состояний (например как это делается в системах контроля версий).
__________________
я могу стать всем, если только захочу |
|
|||||
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Почитал, подумал.
Есть такое мнение: Все действия пользователя оформлять как команды-классы, у каждого такого класса должен быть метод "отменить". Последнии, ну скажем 100 действий-команд-классов записывать в массив, если нажали ОТМЕНИТЬ, то в последнем элементе массива вызывать метод "отменить". Вроди бы должно работать, я так думаю. Интересно, а как это реализованно в серьезных программах? |
|
|||||
Регистрация: Jun 2006
Сообщений: 164
|
Патерн Memento )
|
Часовой пояс GMT +4, время: 01:17. |
|
« Предыдущая тема | Следующая тема » |
|
|