Как отключить и повторно включить MouseEvents;buttonMode, mouseChildren и включить не работают

StackOverflow https://stackoverflow.com/questions/1431647

Вопрос

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

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

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

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

iPoo.addEventListener(MouseEvent.ROLL_OVER, повторный запуск);
iPoo.addEventListener(MouseEvent.ROLL_OUT, неудачный вывод);
iPoo.addEventListener(событие мыши.ЩЕЛЧОК, 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;  

}

Это было полезно?

Решение

Используйте Подключенная мышь собственность.

mc.mouseEnabled = false;

из livedocs:

Если включенный Если значение enabled равно false, окончание видеоклипа, кадры вниз и вверх отключены.Видеоклип продолжает получать события (например, наведение курсора мыши, наведение курсора мыши вверх, нажатие клавиши вниз и нажатие клавиши вверх).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top