В очередь…©
Немного об очередности работы метода animate()
. Большинство читателей, наверное, уже знакомо с организацией последовательной анимации. Для этого мы можем использовать цепочку вызовов:
Для параллельного запуска анимации необходимо будет внести следующие изменения:
Хотя именно данный пример лучше записать как один вызов animate()
:
Есть ещё чудесная функция stop()
, которая позволяет остановить текущую анимацию на полпути, а также почистить очередь при необходимости. Для обеспечения различного поведения функции она принимает три параметра:
Пример есть, и он требует ваших проб и ошибок:
Заметка на будущее: если вы сделали выпадающее меню, которое после игры с мышкой продолжает выпадать и исчезать, значит, надо вставить
stop()
в обработчик события.
Давайте попробуем на живом примере:
По умолчанию вся анимация над объектом складывается в очередь «fx
», но с версии 1.7 можно указывать произвольную очередь:
Для чего нам может понадобиться произвольная очередь? Да для распараллеливания анимации, чтобы мы могли запустить одну очередь анимации и в любой другой момент запустить другую очередь. Возможно, это заклад под игры? Но чего гадать, давайте поиграем:
Откройте страницу и запустите скрипт — перед вами появится игровой персонаж, игра началась!
Скрипт с обработчиком события keydown
уже запущен, и вы можете заставить Марио бегать по странице используя «стрелочки» или клавиши R
, D
, F
и G
:
В данном примере используется две очереди – x
и y
, которые соответствуют осям координат по которым мы осуществляем перемещение. При нажатии клавиши ←
происходит уменьшение значения left
на 100px
в очереди x
. При нажатии клавиши →
мы очищаем очередь x
и увеличиваем left
на 100px
. Для перемещения по оси y
мы используем одноименную очередь и клавиши ↑
и ↓
.
Из данной главы вы должны были узнать, что у
WASD
раскладки есть альтернатива :)Все права на Марио принадлежат Nintendo, так что будьте поаккуратней с ним.
Last updated