0
var gridArray:Array = new Array(7);
   gridArray[0] = [4,2,1,1,2,3,1];
   gridArray[1] = [2,2,1,4,2,1,2];
   gridArray[2] = [1,2,1,2,1,1,2];
   gridArray[3] = [2,2,2,5,1,1,2];
   gridArray[4] = [1,2,2,1,1,1,2];
   gridArray[5] = [1,1,2,2,2,2,2];
   gridArray[6] = [2,1,2,3,1,1,2];

    for (var i:int=0; i<gridArray.length; i++)
    {
      for (var u:int=0; u<gridArray[i].length; u++)
      {  
        var tile:MovieClip = new Tile();
        tile.gotoAndStop(gridArray[i][u]);
        tile.x = (u-i);
        tile.y = (u+i);
        addChild(tile);
      }
    }

tile.addEventListener(MouseEvent.ROLL_OVER, mouseover);

上記は、グリッドを生成する for ループにあります。Main と呼ばれるクラスにあります。ムービー クリップ タイルには 5 つのフレームがあり、それぞれに異なる内容が含まれています。Tile クラスに hp という変数があり、そこで番号を割り当てます。

if (currentFrame == 1)
{
  hp = 10;
}
else if (currentFrame == 2)
{
  hp = 20;
}
else if (currentFrame == 3)
{
  hp = 30;
}
else if (currentFrame == 4)
{
  hp = 40;
}
else if (currentFrame == 5)
{
  hp = 50;
}

ロール オーバー マウス イベントを使用してタイルの hp をトレースしますが、配列に異なるフレームがあるにもかかわらず、結果として 10 しか得られません (フレーム 1 にあることを意味します)。以下は私のマウスオーバー機能です

編集:

function mouseover(event:MouseEvent)
            {
                trace(event.currentTarget.currentFrame, Tile.hp);
            }

個々のタイルをトレースするにはどうすればよいですか? Tile.hp に currentframe を追加することを考えていましたが、うまくいかないようでした。

4

0 に答える 0