Ah ecco...
Si, diciamo che il tuo algoritmo (grande minestrone) potrebbe essere una soluzione, anche se non molto ottimale... infatti tu indichi una condizione dove se la posizione è già occupata, allora dovrebbe ripetersi il ciclo fino a trovarne una non occupata...
Una soluzione migliore è, invece, quella di creare un array con l'indice delle posizioni e man mano eliminare, in modo casuale, le voci di questo array in modo da valutare solo le posizioni rimanenti.
...
Non puoi utilizzare goto per richiamare righe di codice, in quanto non si possono numerare le righe di codice.
Puoi però utilizzare dei cicli e delle funzioni da poter richiamare.
Ti consiglio comunque di studiarti le basi dell'ActionScript.
Molto materiale informativo lo troverai sulla guida stessa di flash.
...
Torniamo al tuo problema.
Dovrai innanzitutto concatenare un mc (movie clip) per poterlo richiamare da script.
Come fare:
- Una volta creato il tuo mc, quindi, clicca col dx sul relativo simbolo nella libreria
- Scegli "concatenamento.." e nella finestra che ti apparirà, seleziona "Esporta per ActionScript"
- Dai il nome identificatore, ad es: clip
- A questo punto tale simbolo è pronto per essere richiamato da script.
Seleziona il primo frame della root (livello principale) e inserisci questo script:
codice:
// array posizione
posizione = new Array();
// posizione del primo clip a sx in alto
xinit = 10;
yinit = 10;
// distanza tra i clip
dist = 50;
// ciclo per riempire l'array
for (id=0; id<100; id++) {
posizione[id] = id;
}
// ciclo per disporre i clip
for (id=0; id<100; id++) {
// inserisci il clip sullo stage
_root.attachMovie("clip", "clip"+id, id);
// numero casuale tra le posizioni restanti
rnd = random(100-id);
// indice riga
r = int(posizione[rnd]/10);
// indice colonna
c = posizione[rnd]-r*10;
// posiziona clip
_root["clip"+id]._x = xinit+dist*c;
_root["clip"+id]._y = yinit+dist*r;
// elimina dall'array, la voce relativa alla posizione
posizione.splice(rnd, 1);
}
I clip verranno disposti nelle posizioni casuali in una griglia 10
*10 secondo le tre variabili iniziali:
xinit = 10;
yinit = 10;
dist = 50;
che potrai impostare a tuo piacimento