
En principe une boucle for en elle-même ne bouffe presque rien et ce sont surtout les opérations que tu lui fais faire qui prennent du temps de calcul.
D´ailleurs rajoute :
for (i=0; i<10000; i++) {
a = 10;
}
à la fin de ton code, juste avant le );
Tu verras qu´on ne voit quasiment pas la différence. Après tout dépend du PC qui exécute.
Sinon, quelques conseils :
Déjà, je vois o = o+1
Tu peux écrire o += 1
Ou même o++
Ensuite je vois un gros tas de : this["petitcarreau_"+i]
lol. C´est lourd. Très lourd (au niveau visibilité)
Tu peux mettre :
c = this["petitcarreau_"+i]
c.height = a
et utiliser c sans à réutiliser la syntaxe précédente.
Et si tu es adepte à ce point au temps de calcul, commence par ne pas faire ces calculs se répéter.
Par exemple je vois dans ton for : Stage.height/o;
Il calculera ça à chaque boucle, mais il trouveras toujours le même résultat, donc une fois suffit.
Tu verra que les performances seront grandement augmentées, surtout quand la boucle commence à faire beaucoup d´itérations.
Voilà le nouveau code :
o = 0;
// là j´ai mis 0 pour commencer avec un seul rectangle, mais on s´en fout
onMouseDown = function () {
o++;
hei = Stage.height/o;
wid = Stage.width/o;
// calcule hauteur et largeur avant de faire des boucles
nom = "petitcarreau";
// pour ne pas avoir à réécrire "petitcarreau"
for (i=0; i<Math.pow(o, 2); i++) {
j = Math.ceil((i+1)/o);
this.attachMovie(nom, nom+i, i);
c = this[nom+i];
c._height = hei;
c._width = wid;
c._x = c._width*(i-o*(j-1));
c._y = c._height*(j-1);
}
};