Flash 二维/多维数组中的项名称

Flash 二维/多维数组中的项名称,flash,actionscript-3,Flash,Actionscript 3,如何在Actionscript 3中为多维数组中的元素指定名称 在1d阵列中工作: tab[0].name = "name"; 在多维数组中,不工作: tab[0][0] = "name"; 首先,您需要确保将对象正确添加到多维数组中,例如: // Declare a single dimension array var tab:Array = new Array(); // Add another array at each of your indexes, starting at z

如何在Actionscript 3中为多维数组中的元素指定名称

在1d阵列中工作:

tab[0].name = "name";
在多维数组中,不工作:

tab[0][0] = "name";

首先,您需要确保将对象正确添加到多维数组中,例如:

// Declare a single dimension array
var tab:Array = new Array(); 

// Add another array at each of your indexes, starting at zero
tab[0] = new Array();
tab[0].add(objectThatHasANameProperty);
//OR
tab[0] = new Array(objectThatHasANameProperty)

//Then reference it properly (with the .name, your example code above does not have ".name")
tab[0][0].name = "name";
(可选)如果您的对象没有名称属性(不是我的首选项,但可以),则可以按如下方式定义其他属性:


这样试试……

你能澄清你的问题吗?数组中的元素是什么?第二个例子中发生了什么?另外,在第二个示例中,为什么不像在第一个示例中一样使用“.name”属性(选项卡[0][0]。name=“name”;?为什么要使用name属性。我可以看出您可能来自AS2背景,因为您使用的是“name”。在AS3中根本不使用名称,不需要它。
tab[0] = new Array(someObject, "name", "description");
tab[0][1] = "a new name";
trace(tab[0][1]); //traces: "a new name"
trace(tab[0][2]); //traces: "description"
var arr:Array =[];
arr[0]=[];
arr[0][0] = "benny";
arr[0][1] = "geo";
trace(arr[0][0]);