вторник, сентября 25, 2007

Еще раз о Delegate. AS2

Никак не запомню...

import mx.utils.Delegate;
obj1={name:"name1"};
obj2={name:"name2"};
obj1.test="Test";
obj2.function_name2=function() { trace("Result: "+this.test+" "+this.name);}
obj1.function_name1=Delegate.create(obj1,obj2.function_name2);
obj1.function_name1();

Результат: Result: Test name1

obj1 - Контекст или объект для которого делегируется функция.
obj2 - Объект, который поручает свой метод.
obj1.function_name1 - функция, которой поручается выполнение.
obj2.function_name2 - поручаемая функция.

Пример применения.
Кнопка button вызывает по нажатию метод, делегированный объекту-родителю:

import mx.utils.Delegate;
this.button.onRelease=Delegate.create(this,
function() {
this.doSomething();
}
);

Комментариев нет: