AS3.0实现撤消/回复机制

这不是一个很新的问题,网上已经有很多优秀的程序员给出了比较详实的解决方案,这里从as3的角度再加以阐述并给出代码。

将所有的操作认为是一个Command,每一个Command都有Undo和Endo两个动作。Undo为撤消,Endo为回复/正常的操作(正常操作和撤消后回复基本是一样的)。所以这里写一个接口ICommand,所有的Command都要实现这个接口:

 

package com.leslie.WebComponent.Util{

public interface ICommand {

// Interface methods:

function Undo() : void;

function Redo() : void;

}

}

 

以文本编辑器为例,制作一个URLCommand,这个动作在文本中插入一个URL,实现Undo()和Redo()

 

package com.leslie.WebComponent.Util{ import flash.text.TextFormat; import fl.controls.TextInput; import flash.text.TextField; public class URLCommand implements ICommand{ var mainTxt : TextField; //文本框 var lastTextFormat : TextFormat; //之前的文本的文本格式 var URL : String; //网址 var newString : String; //超连接字面文字 var lastString : String; //原先的文字(超连接字面文字会替代掉原 来的文字,需要保存便于撤消) var star

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值