2013-06-12 2 views
0
 private var previousClick = null; 

     public static var floor1:Array = new Array(); 
       floor1[0] = [2,1,1,1,1,1,2]; 
       floor1[1] = [1,1,1,1,1,1,1]; 
       floor1[2] = [1,1,1,2,1,1,1]; 
       floor1[3] = [1,1,1,1,1,1,1]; 
       floor1[4] = [1,1,1,2,1,1,1]; 
       floor1[5] = [1,1,1,1,1,1,1]; 
       floor1[6] = [2,1,1,1,1,1,2]; 

     public function Main() 
       { 
        var tilew:int = 60; 
        var tileh:int = 60; 

        for (var i:int=0; i<floor1.length; i++) 
        { 
         for (var u:int=0; u<floor1[i].length; u++) 
         { 
          var cell:MovieClip = new Tile(); 
          cell.gotoAndStop(floor1[i][u]); 
          cell.x = ((u-i)*tileh)+365; 
          cell.y = ((u+i)*tileh/2)+70; 
          addChild(cell); 

          cell.addEventListener(MouseEvent.CLICK, mouseclick); 
         } 
        } 

    function mouseclick(event:MouseEvent) 
       { 
         (event.currentTarget as Tile).outline.gotoAndStop("active"); 
         event.currentTarget.cellSelected = true; 

         event.currentTarget.removeEventListener(MouseEvent.CLICK,mouseclick); 


         if (previousClick !== null){ 
          (previousClick as Tile).outline.gotoAndStop(1); 
          event.currentTarget.cellSelected = false; 

previousClick.addEventListener(MouseEvent.CLICK,mouseclick); 
          trace(previousClick); 
         } 
         previousClick = event.currentTarget; 
         previousClick.cellSelected = true; 
} 

그래서 바닥을 만들기 위해 서로 줄 지어있는 셀이라는 타일이 있습니다. 셀을 클릭하면 해당 타일의 윤곽선이 빛나고 현재 해당 셀이 선택되었음을 나타냅니다. 또한 현재 타일이 선택되어 있는지 확인하는 부울을 만들었습니다. 문제는 부울이 내가 선택한 타일, 특히 게임이 시작될 때 클릭하는 첫 번째 타일이 아닌 타일에 true를 반환한다는 것입니다.현재 클릭하지 않은 영화 클립은 사실로 표시됩니다.

그럼 내 질문은 내가 선택한 타일을 현재 어떻게 사실과 같지 않은 것으로 선택합니까?

답변

0

중복으로 인한 것 같습니다.

cell.y = ((u + i) * tileh) +70;

+0

도움 주셔서 감사합니다. 그것은 타일을 제자리에서 움직이는 것처럼 보입니다. 나 또한 그들 사이에 약간의 공간을 얻으려면 1.8으로 나눠 시도했지만 너무 멀리 이동 – Bindlestick