Анимация нескольких экземпляров с помощью canvas - PullRequest
1 голос
/ 18 января 2012

jsfiddle здесь

Мне сегодня скучно на работе, поэтому я просто начал что-то создавать с помощью canvas, чтобы попытаться научить себя чему-то. Я застрял в этой части и решил обратиться к SO-сообществу вместо того, чтобы биться головой о стену.

Основная идея состоит в том, чтобы прослушать щелчок, а затем создать случайно окрашенный круг, в котором пользователь щелкает, анимируя его в большем размере и затухая.

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

Должен ли я иметь цикл анимации, отдельный от setInterval, который увеличивает / уменьшает круги? Если так, что должен делать этот цикл? Мне кажется, что мне нужно отделить размещение / увеличение / исчезновение кругов от фактического рендеринга.

РЕДАКТИРОВАТЬ: я заметил, что это, кажется, работает только в Chrome (возможно, сафари тоже)

1 Ответ

1 голос
/ 18 января 2012

Решение состоит в том, чтобы объединить все ваши рисунки в одном месте, чтобы ваш setInterval обратный вызов мог перерисовать все.

Проверьте это: http://jsfiddle.net/ybcHk/7/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...