目前没有点击的movieclip是真的

时间:2013-06-12 15:39:19

标签: actionscript-3 flash-cs5 tile

     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;
}

因此,我将称为细胞的瓷砖相互排列成一层。单击单元格时,该图块的轮廓会发光,表示当前已选中该图块。我还创建了一个布尔值来检查当前的tile是否被选中。问题是,布尔值返回true到我点击的那个不是当前选中的牌,特别是我在游戏开始时点击的第一个牌。

所以我的问题是,如何才能获得我点击的当前未被选中的瓷砖?

1 个答案:

答案 0 :(得分:0)

我认为这是由重叠引起的。

你可以试试cell.y =((u + i)* tileh)+70;