Кому не лень, подскажите как дописать код или ссылку на решение проблемы в форуме, дабы реализовать задуманное...
В общем тренируюсь создавать объекты, передвигать их с помощью Tweener'а ну и так далее... создаю N-е количество шариков, размещаю их в цепочку, наводя хаотически мышку шарики разлетаются в разные стороны - это я реализовал без проблем.. теперь после разлета хочу вернуть их на место с помощью таймера.. по окончанию движения шарика, создаю и запускаю таймер для каждого шарика, но столкнулся с проблемой как передать в слушателя какой именно шарик возвращать и теперь, просто все созданные таймера срабатывают на последний шарик... в общем ниже привожу код.. возврат сделал топорным способом, нехочу так с самого начала учиться, подскажите пожалуйста как правильно сделать?)

Код AS3:
package
{
import caurina.transitions.Tweener;
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class FirstExperiment extends MovieClip
{
private var masXY:Array;
public function FirstExperiment()
{
masXY = new Array();
for (var i:uint=0; i<10; i++){
var sb:SuperBall = new SuperBall(0x00ff00, 4);
sb.x = 100+(sb.width*i);
sb.y = 100;
sb.name = i;
masXY.push([sb.y, sb.x]);
addChild(sb);
}
this.addEventListener(MouseEvent.MOUSE_OVER, onMO);
}
private function onMO(e:MouseEvent):void{
var target:MovieClip = new MovieClip;
Tweener.addTween(e.target,{
y:Math.random()*(stage.stageHeight-30),
x:Math.random()*(stage.stageWidth-30),
time:2,
transition:"easeInOutQuad",
onComplete:Pauser()});
var timer:Timer = new Timer(3000,1);
timer.start();
timer.addEventListener(TimerEvent.TIMER_COMPLETE,onT);
}
private function onT(t:TimerEvent):void{
var i:uint=0;
do {
Tweener.addTween(this.getChildAt(i),{
y:masXY[i][0],
x:masXY[i][1],
time:2.5,
transition:"easeOutInQuad",
onComplete:Pauser});
i++;
} while (i<this.numChildren);
}
private function Pauser():void{}
}
}