Почему вы не сохраняете позиции mcs в массиве точек?
Таким образом, где бы ни были mcs на доске, было бы легко вернуть их в нужное положение.
var positions:Array = [ new Point(mc1.x , mc1.y), .... , new Point(mcn.x , mc1.n), ];
//assuming that this code is run from
// the mcs container and that this container
// doesn't have any other children
for( var i:int ; i < this.numChildren ; ++i )
{
//provided that the MCs are on
//the right order in the Display List
var mc:MovieClip = this.getChildAt(i) as MovieClip;
//no tween here but you get the idea...
mc.x = positions[i].x;
mc.y = positions[i].y;
}
После того, как вы разбили растровые изображения и преобразовали их в MovieClips, я предполагаю, что на этом этапе у вас есть решение головоломки.
Если да, то вам нужно сохранить текущие позиции фигур, прежде чем они смогут переместиться.
Практически это означает, что не нужно добавлять прослушиватель событий до того, как вы фактически сохраните позиции.
//instantiate the Array
var positions:Array = [];
for(var i:int ; i < this.numChildren; ++i )
{
// add the mcs positions
var positions[i] = new Point ( this.getChildAt(i).x , this.getChildAt(i).y );
//you could add your Mouse Event listener here...
}