15 lines
1 KiB
Markdown
15 lines
1 KiB
Markdown
importance: 5
|
||
|
||
---
|
||
|
||
# Меню с таймером для анимации
|
||
|
||
Есть класс `Menu`. У него может быть два состояния: открыто `STATE_OPEN` и закрыто `STATE_CLOSED`.
|
||
|
||
Создайте наследника `AnimatingMenu`, который добавляет третье состояние `STATE_ANIMATING`.
|
||
|
||
- При вызове `open()` состояние меняется на `STATE_ANIMATING`, а через 1 секунду, по таймеру, открытие завершается вызовом `open()` родителя.
|
||
- Вызов `close()` при необходимости отменяет таймер анимации (назначаемый в `open`) и передаёт вызов родительскому `close`.
|
||
- Метод `showState` для нового состояния выводит `"анимация"`, для остальных -- полагается на родителя.
|
||
|
||
[edit src="source" title="Исходный документ, вместе с тестом"]
|