, ну так я же думал, что вам именно такое поведение и нужно, чтобы разные объекты не зависели друг от друга. Кто ж мог подумать, что вам нужен один стек анимации на всех. Ну вот как-то так будет:

Код AS3:
var aniParameters:Array = new Array();
function ani(object:DisplayObject, parameters:Array, time:Number = 1):void
{
if(object && parameters){
for each(var item:Object in parameters) {
item.object = object;
if(!item.t) item.t = time;
}
if(!aniParameters.length) aniParameters = parameters;
else {
aniParameters = aniParameters.concat(parameters);
return;
}
}
if(aniParameters.length){
var nextParameters:Object = aniParameters.shift();
var nextObject:DisplayObject = nextParameters.object;
var nextTime:Number = nextParameters.t;
delete nextParameters.object;
delete nextParameters.t;
if(aniParameters.length) {
nextParameters.onComplete = arguments.callee;
nextParameters.onCompleteParams = [null, null];
}
TweenLite.to(nextObject, nextTime, nextParameters);
}
}
/**
* Ну и соббсна пример
* Обратите внимание, что к прочим параметрам анимации (x,y,ease и т.д.) я добавил еще один необязательный - t
* Это время анимации в секундах, как и последняя переменная, принимаемая функцией.
* То есть те шаги, у которых t не указан как и раньше будут брать время общее для всех шагов,
* а у которых указан будет свое индивидуальное)
*/
ani(simbol1, [{x:500, y:10, t:2},{x:500, y:350},{x:30,y:350, ease:Elastic.easeIn}], 3);
ani(simbol2, [{x:400,y:400, t:2},{x:20, y:17}]);
ani(simbol2, [{x:400,y:17, t:2},{x:14,y:300, t:3}]);