2D数组错误-错误#1010:术语未定义且没有属性



前两个循环将文本字段设置得很好。但接下来的2给了我错误#1010:一个术语是未定义的,没有属性。有些东西是空的,但是什么?无法计算:(

import flash.text.TextField;
var suallar:Array = new Array();
var cavablar_temp:Array = new Array();
var i:int;
var j:int;
suallar.push(["sual1", "duz1", "sehv11", "sevh12", "sevh13","sevh14"]);
suallar.push(["sual2", "duz2", "sehv21", "sevh22","sevh23","sevh24" ]);
suallar.push(["sual3", "duz3", "sehv31", "sevh32","sevh33","sevh34"]);
suallar.push(["sual4", "duz4", "sehv41", "sevh42","sevh43","sevh44"]);
suallar.push(["sual5", "duz5", "sehv51", "sevh52","sevh53","sevh54"]);
var sualYeri:Array = new Array();
for (i=0; i<suallar.length; i++)
{
    sualYeri[i] = new TextField();
}


for (i=0; i<suallar.length; i++)
{
    sualYeri[i].text = suallar[i][0];
    sualYeri[i].x = 0;
    sualYeri[i].y = 50 * i;
    addChild(sualYeri[i]);
}
trace(sualYeri.join("n"));
trace(suallar.join("n"));

最后两个循环,不起作用从这里开始

var cavabYeri:Array = new Array();
for (i=0; i<suallar.length; i++)
{
    for (j=0; j<suallar.length; j++)
    {
        cavabYeri[i][j] = new TextField();
    }
}
trace(cavabYeri.join("n"));

for (i=0; i<suallar.length; i++)
{
    for (j=0; j<suallar[i].length; j++)
    {
        cavabYeri[i][j].text = suallar[i][j];
        cavabYeri[i][j].x = 0 + 100 * j;
        cavabYeri[i][j].y = 0 + 100 * i;
        addChild(cavabYeri[i][j]);
    }
}

问题是您初始化了cavabYeri数组,但没有初始化其子数组。

for (i=0; i<suallar.length; i++)
{
    cavabYeri[i] = []; // or new Array();
    for (j=0; j<suallar.length; j++)
    {
        cavabYeri[i][j] = new TextField();
    }
}

您遇到的问题与我回答的这个问题完全相同。

如果不首先在array[i]处创建数组,就不能立即为array[i][j]赋值。