Flash 电影剪辑的2D阵列-错误#1006

Flash 电影剪辑的2D阵列-错误#1006,flash,actionscript,adobe,flash-cs5.5,Flash,Actionscript,Adobe,Flash Cs5.5,我仍在学习用AS3编写代码,这看起来很简单,类似于Java,所以如果我在某个地方犯了一个愚蠢的错误,我很抱歉 根据问题的标题,我正在尝试创建一个我已经创建的MovieClip的2D(嵌套)数组,以便它们可以在网格上打印出来,如下所示 var NumCols:Number = 8; var NumRows:Number = 8; var ColWidth:Number = (stage.stageWidth-8)/NumCols; var ColHeight:Number = (stage.st

我仍在学习用AS3编写代码,这看起来很简单,类似于Java,所以如果我在某个地方犯了一个愚蠢的错误,我很抱歉

根据问题的标题,我正在尝试创建一个我已经创建的MovieClip的2D(嵌套)数组,以便它们可以在网格上打印出来,如下所示

var NumCols:Number = 8;
var NumRows:Number = 8;
var ColWidth:Number =  (stage.stageWidth-8)/NumCols;
var ColHeight:Number = (stage.stageWidth-8)/NumRows;
var GemMatrix:Array = new Array( 8, 8 );
var n = 1;
var SW:Number = stage.stageWidth;
var SH:Number = stage.stageHeight;

private function GJ_GenerateBoard(event:MouseEvent):void {
// Initialization...
for (var j = 0; j < NumRows; ++j)
{
    GemMatrix[y] = [];
    for (var i = 0; i < NumCols; ++i)
    {
        trace(i,j);
        GemMatrix[i][j] = new Gem() as MovieClip;
        this.addChild(GemMatrix[i][j]);
        GemMatrix[i][j].x = i*ColWidth+ColWidth/2;
        GemMatrix[i][j].y = j*ColHeight+ColHeight/2;
    }
}
当我试图创建一个新的Gem()实例时,这会在一行中发生


非常感谢您的帮助。谢谢

var-GemMatrix:Array=新数组(8,8)

这就是你得到的。这实际上创建了一个一维数组,即[Number(8),Number(8)]。您不需要在AS3中定义数组的长度,下面是我如何设置它的:

var GemMatrix:Array = [];

for (var i:int = 0; i < NumCols; i++){
    var $a:Array = [];
    for (var m:int = 0; m < NumRows; m++){
        var $gem:MovieClip = new Gem();
        $gem.x = i*ColWidth+ColWidth/2;
        $gem.y = j*ColHeight+ColHeight/2;
        addChild($gem);

        $a.push($gem);
    }
    GemMatrix.push($a);
}
var矩阵:数组=[];
对于(变量i:int=0;i

而且,这一行很奇怪:GemMatrix[y]=[];这不会引发错误的唯一原因是,y是当前从中扩展的类的动态属性,指示其y位置(很可能是.y=0)。

Gem
类(或至少调用其构造函数)发布代码。如果错误在那一行,它可能发生在
Gem()
调用中,因为我认为那一行没有任何其他错误。谢谢!我也用过这种方法。
var GemMatrix:Array = [];

for (var i:int = 0; i < NumCols; i++){
    var $a:Array = [];
    for (var m:int = 0; m < NumRows; m++){
        var $gem:MovieClip = new Gem();
        $gem.x = i*ColWidth+ColWidth/2;
        $gem.y = j*ColHeight+ColHeight/2;
        addChild($gem);

        $a.push($gem);
    }
    GemMatrix.push($a);
}