使用嵌套数组创建切片贴图

时间:2014-07-21 23:30:48

标签: actionscript-3 flash flash-builder

我对数组感到疯狂,所以我需要你的帮助:

我创建了几个嵌套数组:

private var mainArray:Array=[arrayOne,arrayTwo,arrayThree];
private var arrayOne=[item1,item2,item3];
private var arrayTwo=[item4,item5,item6];
private var arrayThree=[item7,item8,item9];

首先,当我尝试例如:trace(mainArray[2][0]) Flash Builder的输出是:undefined或null(而不是item7)。

其次,我无法找到任何行/列位置(显然......因为每个对象似乎都是未定义的):

private function findPosition(row:int,col:int)
{
    for(var row:int=0;row<=mainArray.length;row++)
    {
      for(var col:int=0;col<=mainArray[row].length;col++
      {
           trace(row,col,mainArray[row][col]);
      }
    }
}

它总是会让我产生某种错误(我试过许多自制的解决方案和谷歌搜索)。

我需要找到每一行/ col位置并根据它放置艺术品,我正在创建一个瓷砖地图,这对我来说可能是最简单的方式(初学者)。

感谢所有可能的解决方案。

2 个答案:

答案 0 :(得分:2)

您在创建其他阵列之前尝试填充mainArray。 将第1行向下移动到第4行。

private var arrayOne:Array = [item1,item2,item3];
private var arrayTwo:Array = [item4,item5,item6];
private var arrayThree:Array = [item7,item8,item9];
private var mainArray:Array = [arrayOne,arrayTwo,arrayThree];

答案 1 :(得分:0)

你可以创建一个全内联的二维数组

private var mainArray:Array= [
      [item1,item2,item3],
      [item4,item5,item6],
      [item7,item8,item9]
];

private var mainArray:Array = new Array();

然后在方法中添加子数组

mainArray.push([item1,item2,item3]);
mainArray.push([item4,item5,item6]);
mainArray.push([item7,item8,item9]);