我正在尝试在我的场景中创建一个n x n大小的矩阵,每个元素应该是一个名为Table的影片剪辑,已经在库中准备好了。
var tables:Array.<Table> = new Array.<Table>(tablesDimension, tablesDimension);
for (var i:int = 0; i < tablesDimension; i++) {
for (var j:int = 0; j < tablesDimension; j++) {
var tempTable:Table = new Table();
tempTable.x = i * 150 + 100;
tempTable.y = j * 100 + 100;
stage.addChild(tempTable);
tables.push(tempTable);
trace(tables[0][0].x);
}
}
影片片段(在本例中为Table)不能放入二维数组?我应该在我的最后一行使用一些类型转换,在trace(tables[0][0].x);
向建议者建议:它是关于一个Table类型的对象吗?
我收到的错误消息:“输入非参数化类型的参数”
答案 0 :(得分:1)
我不确定你为什么要尝试使用你的第一行,但这是不正确的。 引用adobe actionscript参考:
Array()构造函数可以以三种方式使用。
见adobe reference link on Array creation。或者您可以使用向量(键入,就像您似乎想要的那样)。
所以基本上你想要创建一个Array,它本身就包含数组。当你完成第一个时,你需要创建其中包含的数组。否则,您将尝试推入非现有元素。此外,您需要将索引添加为RST表示。
var tables:Array.<Table> = new Array();
for (var i:int = 0; i < tablesDimension; i++) {
tables[i] = new Array();
for (var j:int = 0; j < tablesDimension; j++) {
var tempTable:Table = new Table();
tempTable.x = i * 150 + 100;
tempTable.y = j * 100 + 100;
stage.addChild(tempTable);
tables[i].push(tempTable);
}
}
trace(tables[0][0].x);
这应该有效。
答案 1 :(得分:0)
我认为你错过了一个索引。试试这个
for (var i:int = 0; i < tablesDimension; i++) {
for (var j:int = 0; j < tablesDimension; j++) {
var tempTable:Table = new Table();
tempTable.x = i * 150 + 100;
tempTable.y = j * 100 + 100;
stage.addChild(tempTable);
tables[i].push(tempTable);
trace(tables[0][0].x);
}
}