|
|
|||||
Регистрация: Nov 2010
Сообщений: 430
|
Реализация возможности «Шаг назад»
Здравствуйте.
Хочу реализовать возможность вернуться на шаг назад/вперед в приложении. Мысль примерно такая: есть некоторый массив, в котором ссылки на функции, и чтобы шагнуть назад/вперед, нужно просто вызвать последний элемент в массиве. Класс Manager: public class Manager [...] private static var _forward:Vector.<Function>; [...] // сеттер и геттер функции из стека «вперед» public static function set forward(f:Function):void{ _forward.push(f); } public static function get forward():Function{ return _forward[_forward.length-1]; } Такое использование вызывает ошибку. Подскажите, правильная ли идея и реализация? Если нет, как можно поправить?
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь. |
|
|||||
Придется для каждой функции писать отмену.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
У Вас не работает потому что
возвращает не функцию, а результат функции (в данном случае видимо void). Чтобы получить ссылку на функцию нужно сделать так:
Теперь видно, что кроме функции нужны еще и параметры (и их количество может меняться), и тоже придется хранить. Вообще данную задачу решают с использование паттерна Command. Примерно с таким интерфейсом: package { public interface ICommand { function execute():*; function undo():void; function redo(); } } А вообще поиск рулит.
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 05.04.2012 в 13:16. |
Часовой пояс GMT +4, время: 15:57. |
|
« Предыдущая тема | Следующая тема » |
|
|