Make generated objects form a certain object

Hi everyone. I have been posting some threads about parts of this problem and finally i am able to make the stars successfully form what i have set-up in their movieClip, but only once.

The problem now is that i am trying to make the stars follow this list of actions:

Spread the stars initially and then make them form the existing form in the movieClip(works);

Change the frame in the movieclip to another form that i want to make the stars move to(doesn’t work).

Below i will have the code explained and show where i think i have my issue:

Create the Position x and y arrays and Spread the stars

var xInitial:Array = new Array();
var yInitial:Array = new Array();
var xFinal:Array = new Array();
var yFinal:Array = new Array();

var n:uint = 0;

var nStars:uint = drawings.numChildren;

for (var i:uint = 1; i <= nStars; i++) {
    
    xInitial[i - 1] = Math.random()*1280 - 640;
    yInitial[i - 1] = Math.random()*800 - 400;  
    
}


Create a timer and have a function that it’s called at the beginning as null because it would take 10 seconds to be called for the first time, and we need to have it called as soon as the code runs.

That function increases then 1 frame in the movieclip that has all the shapes with stars, to pass to another frame to make the stars move to another shape.

var timeOut:Timer = new Timer(10000);
timeOut.addEventListener(TimerEvent.TIMER, changeDrawing);
timeOut.start();

changeDrawing(null);


function changeDrawing(e:TimerEvent) {
    
    n++;
    drawings.gotoAndStop(n);
}

This function imready() runs in each of the movieclip frames (it was a try to fix the issue)

**This is how it is in the main Timeline: **

function imready() {
    
    readStarsPosition();
    SpreadStars();
    MakeDrawing();
}

And this is the code that runs in each frame to call it:

MovieClip(root).imready();

Next, in the main timeline, we have the function that reads the stars position that are already defined in our movieclip and prepared manually.

function readStarsPosition() {
    
    for (var i:uint = 1; i <= nStars; i++) {
    
    xFinal[i - 1] = drawings.getChildAt(i-1).x;
    yFinal[i - 1] = drawings.getChildAt(i-1).y;
    
}
}

Next is the frame that saves their initial position so that when they spread they have their xinitial:

function SpreadStars() {

    for (var i:uint = 1; i <= nStars; i++) {
    drawings.getChildAt(i-1).x = xInitial[i - 1];
    drawings.getChildAt(i-1).y = yInitial[i - 1];
}
}

And finally, the function that makes the stars get together to form the shape of the frame of that movieclip (i will have 10 different shapes) and then 3 seconds later it spreads again, **running then the changeDrawing function that moves to the next Frame after this.
**

function MakeDrawing() {
    
    for (var i:uint = 1; i <= nStars; i++) {
    Tweener.addTween(drawings.getChildAt(i-1), {x:xFinal[i - 1], y:yFinal[i - 1], time:3});
    Tweener.addTween(drawings.getChildAt(i-1), {x:xInitial[i - 1], y:yInitial[i - 1], time:3, delay:3});
}
}


The issue here is that it first spreads the stars and makes them together, except when they change frame they still do the same shape from the first frame, and not a new one. Any suggestions?