Возможно я захотел невозможного. Но все-таки напишу.
В ходе тестов игры была выявлена серьезная пробелма - после последних изменений. Каждый уровень игры постепенно начинал тормозить и до такой степени, что играть становилось невозможно. Причина тормозов выявлена.
Имеется множество блоков с множеством кадров и один вид блоков с 2 кадрами - неразрушаемый. На уровнях блоки рандомно распределяются.
Теперь пишу код столкновений блоков с шариком и результат столкновений.
Кусочек кода о столкновениях:

Код AS1/AS2:
//столкновения с объектами из массива.
var i = boxes.length;
while (i--) {
var curB = boxes[i];
if (curB.hitTest(MCball)){
if (Math.abs(MCball._x-4.5+MCball._width-curB._x)<MCball._width){
Ball_dx=-Math.abs(Ball_dx);
}
if (Math.abs(MCball._x-4.5-curB._x-curB._width)<MCball._width){
Ball_dx=Math.abs(Ball_dx);
}
if (Math.abs(MCball._y-4.5+MCball._height-curB._y)<MCball._height){
Ball_dy=-Math.abs(Ball_dy);
}
if (Math.abs(MCball._y-4.5-curB._y-curB._height)<MCball._height){
Ball_dy=Math.abs(Ball_dy);
}
//Смотрим, сколько кадров у объекта. Если больше двух - то это обычный блок,
//за него начисляются очки и он пропадает. Если меньше двух - то это неразраушаемый блок.
if (curB._totalframes > 2) {
_global.score+=10;
curB.removeMovieClip();
remove = 1;
if(remove ==1){
_global.compteurbriques--;
remove = 0;}
//Если количество блоков на уровне становится равно количеству неразрушаемых блоков
//то переходим на другой уровень.
if (_global.compteurbriques==_global.blockm){
_global.levelcourant++;
_root.gotoAndPlay("chargementLevel");
_global.lives+=1;
lvlremove += 1;
}
}
В итоге в игру страшные лаги, если на уровне присутствует блок, у которого 2 кадра. Если его нет - нет и лагов. Почему эти лаги возникают нет никаких предположений, но проблема спрятана именно в этих стркоах кода. Может быть тут какая-то нелепая ошибка?
Тормоза в игре усиляются со временем, даже если ни разу не запускать шарик в блоки.