|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2010
Сообщений: 13
|
Как узнать добавлен ли слушатель на определенное событие?
Добавляю слушателя так stage.addEventListener(MouseEvent.MOUSE_MOVE, onMM);
Как узнать запускалось это уже или нет? Спасибо за ответ |
|
|||||
Цитата:
|
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
hasEventListener().
никак не поможет узнать доставлялось событие или нет. Для этого достаточно сделать какую-то переменную, допустим: А в обработчике события поменять ее на true; |
|
|||||
ElenaS, пожалуйста, уточните, что вы имели в виду говоря "Как узнать запускалось это уже или нет?". Был ли добавлен слушатель события, или вызывался ли уже этот слушатель?
|
|
|||||
Регистрация: Nov 2010
Сообщений: 13
|
Мне было интересно узнать "Был ли добавлен слушатель". Я сделала булевскую переменную. А что будет если я несколько раз запущу stage.addEventListener(MouseEvent.MOUSE_MOVE, onMM);. onMM будет несколько раз срабатывать или 1?
|
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
if ( !stage.hasEventListener(MouseEvent.MOUSE_MOVE) stage.addEventListener(MouseEvent.MOUSE_MOVE, onMM); Цитата:
|
|
|||||
Если вы несколько раз напишите
то при возникновении события MouseEvent.MOUSE_MOVE, функция onMM() будет вызываться единожды. Это недолго проверить:
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMM); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMM); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMM); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMM); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMM_2); } private function onMM(event:MouseEvent):void { trace("some"); } private function onMM_2(event:MouseEvent):void { trace("some_another"); } } } // output: // some // some_another Последний раз редактировалось bav; 01.12.2010 в 14:27. |
|
|||||
Регистрация: Nov 2010
Сообщений: 13
|
Спасибо!!!!
|
Часовой пояс GMT +4, время: 02:40. |
|
« Предыдущая тема | Следующая тема » |
|
|