Я не думаю, что синтаксис вы вывесили на самом деле работает, если сам someFunct не возвращает функцию, которая является фактическим слушателя событий (за исключением является то, что Flex имеет некоторые вещи под капотом, что создаст иллюзию, что вы можете это сделать). В любом случае, у вас есть более или менее анонимная функция, если она работает удаленно, как отправлено.
Единственное место, где вы можете удалить анонимную функцию, находится внутри слушателя. Тем не менее, слушатель должен иметь более обычную подпись слушателя событий (иметь единственный параметр, который является событием). Если предположить, что где-то в вашем коде есть кто-то, что выглядит так:
protected function someFunct(param1:int, param2:int):void {
return function(e:MouseEvent):void {
e.target.removeEventListener(e.type, arguments.callee);
trace('in listener', param1, param2);
}
}
Если вы используете Flex, я не думаю, что есть способ, чтобы получить туда, где анонимная функция создана, чтобы позволить слушателю быть удален. Подробнее о том, как работает этот материал, попробуйте прочитать this.
Какая ошибка вы получаете. Скорее то, что не работает, что вы думаете, должно работать. BTW, 'someFunct (1,1)' в addEventListener и 'someFunct' в removeEventListener кажется подозрительным !! – catholicon
Нет ошибки вообще, она просто не удаляет слушателя ... – user2624407