Я хочу иметь кнопку многократного использования, которую можно зарегистрировать для одного из множества различных обратных вызовов, определяемых внешним источником. Когда установлен новый обратный вызов, я хочу удалить старый. Я также хочу иметь возможность очистить обратный вызов извне в любое время.
public function registerButtonCallback(function:Function):void
{
clearButtonCallback();
button.addEventListener(MouseEvent.CLICK, function, false, 0, true);
}
public function clearButtonCallback():void
{
if (button.hasEventListener(MouseEvent.CLICK) == true)
{
// do something to remove that listener
}
}
Я видел здесь предложения по использованию «arguments.callee» в обратном вызове, но я не хочу, чтобы эта функциональность была привязана к обратному вызову - например, я мог бы захотеть дважды щелкнуть кнопку.
Предложения?