Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как удалить слушатель с прописаной в середине функцией? (http://www.flasher.ru/forum/showthread.php?t=160753)

artics 17.07.2011 01:36

как удалить слушатель с прописаной в середине функцией?
 
Доброго времени суток!
Возможно ли удалить слушатель с прописаной в середине функцией?

Код AS3:

myClip.addEventListener(Event.ENTER_FRAME, function(ev:Event) { 
                                trace("aaaa" )
                                } );

если так, то как указать ссылку на такую функцию?

КорДум 17.07.2011 01:38

Нет. Вынесите хендлер оттуда.
Код AS3:

myClip.addEventListener(Event.ENTER_FRAME, foo);
...
private function foo(event:Event):void {
...


artics 17.07.2011 01:39

спасибо
жаль однако)

КорДум 17.07.2011 01:43

Ну, если хотите извращений, пожалуйста:
Код AS3:

private var foo:Function;
...
addEventListener(Event.ENTER_FRAME, foo = function(ev:Event) {
        trace("aaaa");
} );
...
removeEventListener(Event.ENTER_FRAME, foo);


BlooDHounD 17.07.2011 03:24

Код AS3:

( event.target as IEventDispatcher ).removeEventListener( event.type, arguments.callee, event.eventPhase == EventPhase.CAPTURING_PHASE );


etc 18.07.2011 12:40

Цитата:

Сообщение от BlooDHounD (Сообщение 1012227)
Код AS3:

( event.target as IEventDispatcher ).removeEventListener( event.type, arguments.callee, event.eventPhase == EventPhase.CAPTURING_PHASE );


Добавлю: только в том случае, если хендлер хотя бы раз сработает.

carrotoff 18.07.2011 13:20

Цитата:

Вынесите хендлер оттуда.
Поддерживаю. Замыкания в качестве обработчика не есть хорошо


Часовой пояс GMT +4, время: 23:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.