Здравствуйте!
Есть некая игра (что-то наподобе шахмат), для которой на jQuery пишу «плейер». Плейер предназначен для того, чтобы показывать «запись» игры. Игра на двух человек, сначала ходит фигура одного игрока, потом другого, и т.д. Плейеру скармливаются все ходы в игре, он в соответствие с этими ходами перемещает фигуры на экране.
Перемещение фигур должно поисходить так: движется одна фигура, когда она закончила движение, должна перемещаться следующая фигура, и т.д.
В jQuery есть функция animate(), в последнем параметре которой можно указать «конечную» функцию, которая вызывается в конце движения фигуры. Я могу указывать в качестве конечной функции метод начала обработки нового шага, next_step() например.
Но, у меня складывается впечатление, что это создаст рекурсию. Так как в next_step() снова будет вызвана animate() для следующей фигуры, и т.д. Помню, что совсем недавно в браузерах были какие-то ограничения на глубину стека вызовов. То ли 64, толи 100. А в моей игре возможно и 500 ходов и более.
Всвязи с вышеизложенным, вопросы:
1. Действительно ли в вышеописанном случае будет рекурсия?
2. Какие ограничения в JavaScript на стек вызовов в современных браузерах?
3. Как организовать плейер так, чтобы небыло рекурсии? У меня есть предположение сделать машину состояний, и в качестве конечной функции для animate() указать метод, переключащий некий флаг в состояние «ход закончен». Но тогда надо организовывать основной цикл, который будет отслеживать флаги, а его можно организовать только через setTimeout(), что даже при обработке 10 раз в секунду может дать большую нагрузку на браузер.
То есть, мне бы хотелось просто вызывать обработку следующего хода в момент, когда движение фигуры на текущем ходе закончено. Как это сделать?

Ответ на:
комментарий
от stevejobs

Ответ на:
комментарий
от xintrea

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум reusable animate() jquery (2016)
- Форум JQuery animate помогите разобраться. (2016)
- Форум [jQuery] animate background color (2010)
- Форум bash. функции. рекурсия. (2011)
- Форум jQuery, функция append() (2011)
- Форум JQuery и функция live (2015)
- Форум anime (2009)
- Форум Anime (2003)
- Форум рекурсия (2014)
- Форум Рекурсия (2018)