|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2006
Сообщений: 176
|
Особенность вызова функции слушателя событий
писал сначала в своём компоненте:
dataBlockHead.addEventListener(MouseEvent.MOUSE_DOWN, mouseMoveHandler ); .... private function mouseMoveHandler(event:MouseEvent):void { someFunciton(this, dataBlockHead, optDD); } dataBlockHead.addEventListener(MouseEvent.MOUSE_DOWN, function (event:MouseEvent):void{ someFunciton(this, dataBlockHead, optDD); } ); выяснилось что во втором случае под this'ом воспринимается не сам компонент, а что-то другое (trace выдал [object global]) кто-нибудь может как-то прокоментировать? |
|
|||||
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
ну во втором случае ты создаешь локальную функцию, зачем она ссылается на глобал, я не знаю...
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Pow R. Toc H., потому что не надо так сокращать. Вы таким сокращением добьетесь лишь того, что вообще отписаться от такого обработчика не сможете, не говоря уже о том, что случайно вызвав функцию подписки ещё пару раз, получите столько же новых обработчиков.
Mr. Fixit, предупреждаю последний раз: посты бессмысленного толка будут расценены как флейм. То, что ты не знаешь, почему анонимная функция ссылается на global, никого не интересует. Константировать факт создания анонимной функции автором темы тоже никакого смысла не приносит. Последний раз редактировалось etc; 04.05.2008 в 10:43. |
|
|||||
Регистрация: Nov 2006
Сообщений: 176
|
мне удобно использовать такое оформление в initApp(), когда я точно знаю что отписываться не придётся, использую простой скрипт в функции обработчика, также это даёт возможность не загромождать код функциями, вызывающимися один раз.
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Это «удобство» выливается в то, что приложение просто не работает.
|
|
|||||
Регистрация: Jan 2008
Сообщений: 84
|
Ну элементарно же, ты this смотришь не в своём компоненте а в addEventListener, вот его зис и возвращает. Чтоб избежать такой фигни - нужно вначале синициализировать this в переменную.
Это как бы выход, но лучше слушать _етц. |
|
|||||
Регистрация: Nov 2006
Сообщений: 176
|
спасиб.. наверное так и сделаю...
|
|
|||||
стервочка (я мужик)
|
[оффтоп]хомяки пришли и в AS3[/оффтоп]
|
|
|||||
Регистрация: Jan 2008
Сообщений: 84
|
вот я задумался, а нафига вообще зис передавать? используй внутренние функции.
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Вы сами себе за каким-то фигом начинаете создавать проблемы на пустом месте. Нравится — создавайте.
|
Часовой пояс GMT +4, время: 10:31. |
|
« Предыдущая тема | Следующая тема » |
|
|