Есть класс который реализует 2 ф-ции, в 1 добавляются обьекты на рабочую область, во 2 проверяется соприкосновение персонажа с обьектом и если соприкасается то происходит удаление. В конце 2 ф-ции я вывожу i, по сути должно выводится к примеру, при соприкосновении с обьектом с номером 1, должно 1 раз вывести единицу и удалить обьект.
Что происходит у меня, при соприкосновении возникает цикл единиц, обьект исчезает но как только персонаж перестает соприкасаться с ним, он снова появляется. Мне кажется я видимо как то не так передаю ф-ции в обработчик событий, потому что такой цикл у меня возникает буквально везде, обьясните пожалуйста где я могу допускать ошибку, а то я уже устал.
Примечание: в классе GameLoader в ф-ции создается экземпляр класса Meat, далее в кадре в ф-ции game() создается экземпляр класса GameLoader и вызывается ф-ция в которой создан экземпляр класса Meat. После ф-ция game передается в onClipEvent(enterFrame) который находится в клипе на рабочей области. Прошу разьяеснить что я не так делаю из-за чего такие циклы и в следствии не правильная работа. Если надо скину исходник.

Код AS1/AS2:
class Meat {
var numberOfMeat:Number = 3;
function createcoll()
{
for (var i = 0; i<numberOfMeat; i++) {
_root.attachMovie('meat','meat'+i,i,{_x:320, _y:200});
_root['meat1']._x=500;
_root['meat1']._y=100;
_root['meat2']._x=600;
_root['meat2']._y=200;
}
}
function collectable() {
// проверяем соприкосновение
for (var i = 0; i<=numberOfMeat; i++) {
if (_root['meat'+i].hitTest(_root.cat)) {
_root['meat'+i].removeMovieClip();
// удаляем клип
trace(i);
}
}
}
}
Класс GameLoader

Код AS1/AS2:
class Gameloader
{
public function gameplay()
{
var meat:Meat = new Meat();
meat.createcoll();
meat.collectable();}
}
а это уже код в кадре и в клипе

Код AS1/AS2:
function game() {
var Game:Gameloader = new Gameloader();
Game.gameplay();
}

Код AS1/AS2:
onClipEvent (enterFrame) {
_root.game();
}