Как отключить кнопку внутри вложенного мувиклипа?

У меня есть мувиклип, давайте назовем его A. Затем внутри A у меня есть еще один мувиклип, давайте назовем его B, затем внутри B, у меня есть еще один мувиклип, давайте назовем его C, а внутри CI есть несколько кнопок, которые нужны быть временно отключенным. Является ли это возможным? я пытался

A.B.C.enabled=false;

а также

A.B.C.mouseEnabled=false;

Это не работает. Однако я нашел способ сделать это.

A.B.C.buttonInsideC.mouseEnabled=false;

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

2 ответа

Решение

Не только mouseEnabled, вы также должны отключить свойство mouseChildren в C.

A.B.C.mouseChildren = false;

Я предполагаю, что у вас уже есть собственный класс для хранения вашего дочернего MovieClip, просто есть функция, которая проверяет, является ли он правильным дочерним элементом и не вызывает ли он ту же функцию для дочернего элемента. НАПРИМЕР:

public class ClipMovie extends MovieClip
{
    private var _Child:ClipMovie;

    public function DisableButtonsAt(int childIndex, int currentIndex):void
    {
            if(childIndex + 1 == currentIndex)
            {
                someButton.mouseEnabled = false;
            }
            else if(_Child != null)
            {
                _Child.DisableButtonsAt(childIndex, currentIndex + 1);
            }
            else
            {
                throw new Error("Unable to find child, cannot disable buttons.");
            }
    }
}
Другие вопросы по тегам