实现“退一步”的可能性

时间:2014-01-16 14:07:09

标签: actionscript-3

我想实现在应用程序中后退/前进的功能。 想到这个:有一些数组引用了函数,并且后退/前进,你只需要调用数组中的最后一个元素。 班主任:

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];
}

在另一个班级使用:

 [... ]
 Manager.forward = _map.moveObject (mo, 0 , 150, -150 );
 [... ]

此类使用导致错误。 这是正确的想法和实施吗?如果没有,我该如何解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:2)

它不起作用,因为

_map.moveObject(mo, 0, 150, -150);

返回不是函数,而是函数的结果(在这种情况下,显然是无效的)。要获得对函数的引用,请执行以下操作:

Manager.forward = _map.moveObject;
现在很清楚,除了需要的功能和参数(和它们的数量可能会有所不同)之外,还必须存储。通常使用pattern命令解决了这个问题。关于这个界面:

    package
    {
    public interface ICommand
    {
            function execute():*;
            function undo():void;
            function redo();
    }
    }