我有5个名为row1,row2,...,row5的动画片段。每一行内都有movieclips let1,let2,...,let15。我想将所有字母剪辑分配到二维数组。这是对早期问题Dynamically accessing nested movie clips in flash actionscript 2的后续跟进。
我正在尝试这个:
var letterClips:Array = [];
for(var i = 1; i< = 5; i ++){
letterClips[i] = new Array(16);
//var row:MovieClip = _root["row" + i];
//rowClips.push(row);
for ( var j = 1; j <= 15; j++) {
var letter:MovieClip = _root["row" + i]["let" + j];
letterClips[i].push(letter);
}
}
答案 0 :(得分:2)
好吧,如果你使用
letterClips[i].push(letter);
这将在数组末尾添加'letter'并增加其大小(增加1)。所以它将开始在第16位添加“字母”电影,并继续使用17,18,......
解决方案1:替换
letterClips[i] = new Array(16);
与
letterClips[i] = new Array();
解决方案2:替换
letterClips[i].push(letter);
带
letterClips[i][j] = letter;
任何一个都应该工作。
P.S。另请注意,由于您的索引(i,j)从1开始,您的 [0] [j] 和 [i] [0] 在您完成所有迭代时,插槽将未定义。