我想实现在应用程序中后退/前进的功能。 想到这个:有一些数组引用了函数,并且后退/前进,你只需要调用数组中的最后一个元素。 班主任:
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 );
[... ]
此类使用导致错误。 这是正确的想法和实施吗?如果没有,我该如何解决这个问题? 谢谢!
答案 0 :(得分:2)
它不起作用,因为
_map.moveObject(mo, 0, 150, -150);
返回不是函数,而是函数的结果(在这种情况下,显然是无效的)。要获得对函数的引用,请执行以下操作:
Manager.forward = _map.moveObject;
现在很清楚,除了需要的功能和参数(和它们的数量可能会有所不同)之外,还必须存储。通常使用pattern命令解决了这个问题。关于这个界面:
package
{
public interface ICommand
{
function execute():*;
function undo():void;
function redo();
}
}