Показать сообщение отдельно
Старый 23.02.2012, 17:15
andreycom13 вне форума Посмотреть профиль Отправить личное сообщение для andreycom13 Найти все сообщения от andreycom13
  № 1  
Ответить с цитированием
andreycom13

Регистрация: Feb 2012
Сообщений: 2
По умолчанию не переходит на нужный кадр

Подскажите плиз в чем может быть проблема. уже дня 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);
				   }
 
				}
			}
		}