Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   не переходит на нужный кадр (http://www.flasher.ru/forum/showthread.php?t=175758)

andreycom13 23.02.2012 17:15

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



Часовой пояс GMT +4, время: 05:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.