По крайней мере есть одна неправильность. Вы стартуете в цикле несколько "интервалов".
А удаляется интервал только один раз, последний.
Что делает это кусок, зачем несколько раз задается повторное выполнение moveIt ?

Код AS1/AS2:
for (var i:Number = 0; i < pole1; i++) {
moveBk = setInterval(moveIt, 100);
}
Вы же не задаете никакого меняющегося параметра в интервальной функции, просто мгновенно запускается несколько параллельных периодических выполнений... Они наслоятся, и удалится только последнее периодическое выполнение..
setInterval запускает циклический повтор сам по себе, без приравнивания возвращаемого номера интервала. Если мы присваиваем какой-то переменной возвращаемый номер, а потом ссылаемся на нее при удалении интервала, то просто указываем номер интервала для удаления. Поэтому, если переменной (moveBk) мы присваиваем последовательно несколько возвращаемых номеров интервалов, то при ссылке на moveBk в clearInterval будет остановлен только последний присвоенный номер. А в цикле-то был несколько раз вызван setInterval, остальные-то предыдущие тоже нужно поудалять, если что.