/* INFO * @AUTHOR Ramon Tayag * @DATE Dec. 10, 2005 * @DESCRIPTION This is a modified delegate class that handles more than 2 args. * @THANKS * - Lexicon who clarified the create function */ class net.quirkworks.utils.Delegate extends Object { private var func:Function; function Delegate(f:Function) { func = f; } static function create(o:Object, func:Function):Function { var f = function() { var target = arguments.callee.target; var myFunc = arguments.callee.func; var args = arguments.callee.args; return myFunc.apply(target, arguments.concat(args)); }; f.target = o; f.func = func; if (arguments.length > 2) { f.args = arguments.slice(2); } else { f.args = []; } return f; } function createDelegate(o:Object):Function { return create(o, func); } }