Попробуй моим

Код:
/**
* Класс ru.inils.framework.Delegate, модифицированный mx.utils.Delegate. Выполнение функции в заданной области видимости с передачей аргументов.
*
* @author iNils
* @version 1.2
* @see mx.utils.Delegate
* Изменения:
* 1.2 (xx.xx.07)
* [*] Переехал из пакета ru.inils.util.Delegate
*
* 1.1 (xx.xx.07)
* [+] Добавлена возможность передавать аргументы "родного" метода
*
* 1.0 (xx.xx.06)
*/
class ru.inils.framework.Delegate extends Object {
/**
* Метод, передает событие в заданную область видимость и в заданный метод.
*
* @usage public static create (obj:Object, func:Function, arg:Array) : Function
* @param obj Object - Объект, заданная область видимости.
* @param func Function - Метод, обработчик события.
* @param arg Array [дополнительный параметр] - Массив передаваемых аргументов, замещающий аргументы передаваемые "родным" событием. По умолчанию возращаются аргументы переданный при вызове "родного" события.
* @return Function - Функция обработчик.
*/
public static function create (obj:Object, func:Function, arg:Array):Function {
var f = function () {
var targetTemp:Object = arguments.callee.target;
var funcTemp:Function = arguments.callee.func;
var argTemp:Array = null;
if (arguments.callee.arg) {
argTemp = arguments.callee.arg;
} else {
argTemp = arguments;
}
return funcTemp.apply (targetTemp, argTemp);
};
f.target = obj;
f.func = func;
f.arg = arg;
return f;
}
}