Комментарии 10
> Так случилось, что я работаю над Flex-проектом…
Сочувствую, понимаю, морально я с Вами…
> button1.removeEventListener(MouseEvent.CLICK, onClick);
Капитан очевидность?
Сочувствую, понимаю, морально я с Вами…
> button1.removeEventListener(MouseEvent.CLICK, onClick);
Капитан очевидность?
+2
Я пока не дошел до Флекса, но разве данный приём там требует отдельного User Guide? Назначить событие на кнопку, а по нажатию убрать событие? Как сложно жить стало… Кстати, вероятно внутри функции onClick можно использовать this, я не прав?
+2
Когда прочитал заголовок, на секунду даже поверил, что есть другой мегаспособ.
0
нет, this внутри функции — global.
Дойдёте до флекса — будете и не такие юзер гайды искать ;)
Дойдёте до флекса — будете и не такие юзер гайды искать ;)
0
Cхуяли global? (не удержался)
В AS3 this внутри функции всегда указывает на тот контекст, в котором она была описана. Например на объект, к которому она относится.
В AS3 this внутри функции всегда указывает на тот контекст, в котором она была описана. Например на объект, к которому она относится.
0
А, опять не доглядел. Замыкание. Тут this будет global, да.
Пожалуй в данном случае такое оправдано. Но только в данном, когда точно известно, что событие есть и останется одноразовым.
Кстати ещё можно изнутри функции получить указатель на неё же через arguments.callee
Пожалуй в данном случае такое оправдано. Но только в данном, когда точно известно, что событие есть и останется одноразовым.
Кстати ещё можно изнутри функции получить указатель на неё же через arguments.callee
+1
можно даже так попробывать
private function init():void{
button1.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{
trace(«event handled»);
var eventSource:Object = event[«target»];
var eventName:String = event[«type»];
eventSource.removeEventListener(eventName, arguments.caller);
);
}
}
v
private function init():void{
button1.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{
trace(«event handled»);
var eventSource:Object = event[«target»];
var eventName:String = event[«type»];
eventSource.removeEventListener(eventName, arguments.caller);
);
}
}
v
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Самоуничтожающийся EventLisener во Flex/AS