(сразу скажу, я использую библиотеки от greensock)
Ситуация следующая. Есть много объектов на сцене и есть глобальное событие, которое применяется сразу ко всем объектам одновременно, единственное требование --->
для выполнения этого твина - это ни 1 объект не должен двигаться.<---
Ближе к сути, есть сцена, разделённая на блоки, скажем 10х10, в каждом блоке находится 1 объект. Пользователь может поменять местами любые 2 объекта по всей сцене, смена мест естественно сделана с помощью твинов(tweenlite).
Ключевой момент - пользователь одновременно может менять любое кол-во объектов + каждые 60 секунд, все объекты смещаются на 1 клетку наверх(напомню, чтобы запустить анимацию нужно, чтобы ни 1 объект не двигался).
Сейчас у меня такая вот реализация:

Код AS3:
public function apendMult(_objects:Array):void {
var _timeLine:TimelineLite = new TimelineLite( { onStart: pauseGlobal, onComplete: unpauseGlobal } );
_timeLine.appendMultiple(_objects);
}
private function pauseGlobal():void {
_pauseCounter++;
if(_pauseCounter > 0){
_timeLine.pause();
}
}
private function unpauseGlobal():void {
_pauseCounter--;
if(_pauseCounter <= 0){
_timeLine.resume();
}
}
Собственно проблема в том, что "_pauseCounter" иногда неправильно считает запущенные твины(особенно заметно если одновременно запустить очень много действий, используя объекты уже находящиеся в движении). Может что-то не очень ясно объясняю, но мне сразу тоже сложно объяснить саму суть проблемы, возможно уже кто-то сталкивался с подобным или мб есть готовые решение для твинов.
_timeLine - это глобальный таймлайн