![]() |
|
||||||||||
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
а на каких условиях распростроняется ru.inils.util.Delegate и ascb.util.Proxy или вообще не распростроняется?
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не помню, кто автор, но вот:
class ascb.util.Proxy {
public static function create(oTarget:Object, fFunction:Function):Function {
var aParameters:Array = new Array();
for(var i:Number = 2; i < arguments.length; i++) {
aParameters[i - 2] = arguments[i];
}
var fProxy:Function = function():Void {
var aActualParameters:Array = arguments.concat(aParameters);
fFunction.apply(oTarget, aActualParameters);
};
return fProxy;
}
}
![]() Что-нибудь более полезное разве что… |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Просто так.
/**
* Класс 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;
}
}
Последний раз редактировалось iNils; 17.10.2007 в 01:59. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:33. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|