在flex中实现撤消重做

Dev*_*dra 5 apache-flex actionscript-3 flex4.5 flex4.6

如何在flex 4中实现撤消重做操作以维护历史记录?我正在使用flex UIComponent和DisplayObjects来创建和编辑图表,但在flex中,无法直接处理用户操作历史记录.有任何想法实现这一目标吗?

小智 5

您可以使用执行和撤消方法为所有操作实现命令模式,并将它们排队.

所以当用户想做某事时 - 让我们说创建一个AddFiveToTotal类并执行:

public method execute():void{
     totalModel.add( 5 );
}
Run Code Online (Sandbox Code Playgroud)

然后将该类存储在FIFO队列中.

如果用户需要撤消该命令,则会弹出该命令并调用undo函数:

public method undo():void{
     totalModel.subtract( 5 );
}
Run Code Online (Sandbox Code Playgroud)

对于可重做性,不要弹出,只是迭代队列

还可以看一下Memento Pattern

如果您正在使用任何当前流行的MVC(S)框架,您将无疑会找到一个已创建的工具库