Вернуться к уроку

Меню с таймером для анимации

важность: 5

Есть класс Menu. У него может быть два состояния: открыто STATE_OPEN и закрыто STATE_CLOSED.

Создайте наследника AnimatingMenu, который добавляет третье состояние STATE_ANIMATING.

  • При вызове open() состояние меняется на STATE_ANIMATING, а через 1 секунду, по таймеру, открытие завершается вызовом open() родителя.
  • Вызов close() при необходимости отменяет таймер анимации (назначаемый в open) и передаёт вызов родительскому close.
  • Метод showState для нового состояния выводит "анимация", для остальных – полагается на родителя.
Исходный документ, вместе с тестом

Открыть песочницу для задачи.

Обратите внимание: константы состояний перенесены в прототип, чтобы AnimatingMenu их тоже унаследовал.

Открыть решение в песочнице.