Подскажите плиз в чем может быть проблема. уже дня 2 мучаюсь.
Есть мувиклип, он следует за мышкой. через hitTestObject проверяю столкновения, если не сталкиваются то первый кадр, если наоборот то 2. по клику создается объект на месте этого мувика.
Проблема вот в чем: при создании нового объекта (по клику), на второй кадр переходит только при столкновении с последним созданным объектом, хотя в теле проверки на столкновения присутствуют условия if они выполняются без проблем, а gotoAndStop(2) не работает.
Вот код:

Код AS3:
if(global.CreateObjHouse==true){
global.CreateObjHouse=false;
addEventListener(MouseEvent.CLICK,createHouseClick);
addEventListener(MouseEvent.MOUSE_MOVE,createHouseOver);
CreateMapObjShow=new createMapObjShow();
addChild(CreateMapObjShow);
}
//////////////////////////////////////////////////////////////////////////////////////////////
function createHouseClick(e:MouseEvent):void{
if(global.CreateFlagPowerStation==true){
if(CreateMapObjShow.currentFrame==1){
for(var i:Number=0;i<=MapObj.length+1;i++){
if(MapObj[i]==undefined){
MapObj2=new mapObj2();
MapObj[i]=MapObj2;
addChild(MapObj[i]);
MapObj[i].x=CreateMapObjShow.x;
MapObj[i].y=CreateMapObjShow.y;
i=MapObj.length+100;
}
}
global.HouseKolvo++;
global.CreateFlagPowerStation=false;
removeEventListener(MouseEvent.CLICK,createHouseClick);
removeEventListener(MouseEvent.MOUSE_MOVE,createHouseOver);
removeChild(CreateMapObjShow);
CreateMapObjShow=undefined;
}else{
global.CreateFlagPowerStation=false;
removeEventListener(MouseEvent.CLICK,createHouseClick);
removeEventListener(MouseEvent.MOUSE_MOVE,createHouseOver);
removeChild(CreateMapObjShow);
CreateMapObjShow=undefined;
}
}
}
function createHouseOver(e:MouseEvent):void{
CreateMapObjShow.x=e.stageX+(x*-1);
CreateMapObjShow.y=e.stageY+(y*-1);
for each(var item in MapObj){
if(item!=undefined){
if(CreateMapObjShow.hitTestObject(item)){
CreateMapObjShow.gotoAndStop(2);//тут не переходит а все if ниже работают без проблем
if((CreateMapObjShow.x+CreateMapObjShow.width>=item.x)&&(CreateMapObjShow.x+CreateMapObjShow.width<=item.x+20))CreateMapObjShow.x=item.x-1-CreateMapObjShow.width;
if((CreateMapObjShow.x<=item.x+item.width)&&(CreateMapObjShow.x>=item.x+item.width-20))CreateMapObjShow.x=item.x+item.width+1;
if((CreateMapObjShow.y+CreateMapObjShow.height>=item.y)&&(CreateMapObjShow.y+CreateMapObjShow.height<=item.y+20))CreateMapObjShow.y=item.y-1-CreateMapObjShow.height;
if((CreateMapObjShow.y<=item.y+item.height)&&(CreateMapObjShow.y>=item.y+item.height-20))CreateMapObjShow.y=item.y+item.height+1;
}
else if(!CreateMapObjShow.hitTestObject(item)){
CreateMapObjShow.gotoAndStop(1);
}
}
}
}