Как отключить и снова включить MouseEvents; buttonMode, mouseChildren и enable не работают - PullRequest
0 голосов
/ 16 сентября 2009

В принципе, вопрос, скорее всего, можно было бы задать более точно, как мне просто отключить кнопку и затем снова включить ее? Я попытался установить buttonMode в false, mouseChildren в false и включить в false. Ничего не работает Я понимаю, что мог бы просто удалить прослушиватели событий, но, несомненно, есть более элегантный и эффективный способ. Поскольку удаление прослушивателей событий заставило бы меня отслеживать, какие функции относятся к определенным состояниям кнопок, и приходилось добавлять и удалять их снова и снова, что кажется неуклюжим.

Есть ли способ установить флаг, который временно отключает любые EventListeners, которые может иметь объект, а затем просто включить их снова? Я ошибочно полагал, что добавление событий RollOver и т. Д. В мувиклип теоретически преобразует его в кнопку, которую можно легко отключить с помощью свойства enabled. Кроме того, я не могу использовать SimpleButton, поскольку мне нужно больше гибкости, чем она обеспечивает.

Я создал пользовательский класс, который обрабатывает все эти функции и делает жизнь более простой, но мне интересно, есть ли здесь официальный способ «из коробки».

Ниже приведен изолированный пример, который использует MovieClip на сцене с именем экземпляра iPoo, где события всегда запускаются независимо от того, что устанавливается при нажатии кнопки:

iPoo.addEventListener (MouseEvent.ROLL_OVER, pooRollOver);
iPoo.addEventListener (MouseEvent.ROLL_OUT, pooRollOut);
iPoo.addEventListener (MouseEvent.CLICK, pooClick);

функция pooRollOver (_event: MouseEvent): пусто
{

iPoo.alpha = 0.5;  

}

функция pooRollOut (_event: MouseEvent): пусто
{

iPoo.alpha = 1;  

}

функция pooClick (_event: MouseEvent): пусто
{

trace("Poo");  

iPoo.enabled = false;  
iPoo.buttonMode = false;  
iPoo.mouseChildren = false;  

}

1 Ответ

2 голосов
/ 16 сентября 2009

Используйте свойство mouseEnabled .

mc.mouseEnabled = false;

от liveocs:

Если включено Если для параметра установлено значение false, кадры фрагмента ролика «Выкл.», «Вниз» и «Вверх» отключены. Видеоклип продолжает получать события (например, mouseDown, mouseUp, keyDown и keyUp).

...