Arrays 如何检查AS3 2D阵列中的匹配对象?

Arrays 如何检查AS3 2D阵列中的匹配对象?,arrays,actionscript-3,actionscript,Arrays,Actionscript 3,Actionscript,我正在使用ActionScript3“faux”2D数组在游戏中存储分幅,我希望允许我的玩家只移动到有效分幅。这个数组是像“array[x][y]”一样构建的,我知道数组值和玩家移动值,并将这些值放在适当的位置。我知道indexOf可以用于常规数组,但如何检查2D数组?如果数组实例是myArray,则可以使用for循环,如下所示: private function search(element:Object):Point { for (var columIndex:int = 0; co

我正在使用ActionScript3“faux”2D数组在游戏中存储分幅,我希望允许我的玩家只移动到有效分幅。这个数组是像“array[x][y]”一样构建的,我知道数组值和玩家移动值,并将这些值放在适当的位置。我知道indexOf可以用于常规数组,但如何检查2D数组?

如果数组实例是
myArray
,则可以使用for循环,如下所示:

private function search(element:Object):Point
{
    for (var columIndex:int = 0; columIndex < myArray.length; i++)
    {
        var rowIndex:int = myArray[columIndex].indexOf(element);
        if (rowIndex != -1)
        {
            return new Point(columIndex, rowIndex);
        }
    }
    return null;
}

为了在二维数组上运行
indexOf()
,您应该遍历嵌套数组,返回二维坐标(使用
flash.geom.Point
,或为此定制的任何其他类)。但如果您通过查询数组中的某个位置来检查玩家是否移动到了有效位置,并检查其有效性,您会做得更好

function isValid(player:Player,playerWantsToMoveTo:Point):Boolean {...}

我不明白你说的人造2d阵列是什么意思?显示一些代码。如果您知道播放器x,y,并且使用x,y坐标系存储了磁贴,我看不出在2D数组中检查x,y是否为有效磁贴(或者分别检查每个磁贴的边界,然后检查有效磁贴)有什么问题,因为3没有本机2D数组类,因此,为了使多维数组工作,您必须使用嵌套数组-因此是错误的。(哎呀,把这个贴错了答案)
function isValid(player:Player,playerWantsToMoveTo:Point):Boolean {...}