Я пробовал ее решить, но почему-то сначала делается весь цикл, а потом уже анимация.(
Создаю массив и дублирую мувиклипы, расставляя на свои места

Код AS1/AS2:
on (press) {
delete (onEnterFrame);
clear();
listbox.removeAll();
var m, i, j, n, a, b:int;
n = parseInt(textn.text);
a = parseInt(texta.text);
b = parseInt(textb.text);
var mas = array(n+1);
if (dupl == 0) {
for (j=1; j<(mas.length); j++) {
duplicateMovieClip(_root.a1, "a"+j, j);
dupl = 1;
}
}
for (j=1; j<(mas.length); j++) {
this["a"+j]._x = 50+60*j;
}
for (j=1; j<(mas.length); j++) {
mas[j] = random(b-a+1)+a;
listbox.addItem(mas[j]);
this["text"+j].text = mas[j];
this["a"+j]["bar"]._height = mas[j];
this["a"+j]["txt"].text = mas[j];
}
}
непостредственно сортировка по нажатию клавиши

Код AS1/AS2:
on (press) {
var x0 = 0;
clear();
listbox.removeAll();
for (i=1; i<=n; i += 1) {
for (j=n; j>=i; j -= 1) {
x0 = this["a"+(j)]._x;
if (mas[j-1]>mas[j]) {
onEnterFrame = function () {
if (this["a"+(j-1)]._x<>x0) {
this["a"+(j)]._x -= 2;
this["a"+(j-1)]._x += 2;
} else {
delete (onEnterFrame);
}
};
c = mas[j-1];
mas[j-1] = mas[j];
mas[j] = c;
}
}
}
for (i=1; i<=n; i += 1) {
listbox.addItem(mas[i]);
}
}
не могу понять сам принцип роботы и как можна все это организовать