Arrays AS3 Can';t访问多维数组的子级
下面是创建多维tableCardsOfPlayers数组的代码示例,该数组的键具有座位名称,如(“firstSeat”、“secondSeat”等)。这些键应该包含一组“card1”=>Card()引用:Arrays AS3 Can';t访问多维数组的子级,arrays,actionscript-3,flash,multidimensional-array,Arrays,Actionscript 3,Flash,Multidimensional Array,下面是创建多维tableCardsOfPlayers数组的代码示例,该数组的键具有座位名称,如(“firstSeat”、“secondSeat”等)。这些键应该包含一组“card1”=>Card()引用: var players:Array = lastJoinedRoom.userList; var cardsArray:Array = ["card1", "card2", "card3", "card4", "card5"]; tableCardsOfPlayers = new Array(
var players:Array = lastJoinedRoom.userList;
var cardsArray:Array = ["card1", "card2", "card3", "card4", "card5"];
tableCardsOfPlayers = new Array();
for each(var userTemp:User in players)
{
var userVars:Array = userTemp.getVariables();
var userVarDic:Array = new Array();
var seat:String = userTemp.getVariable("seat").getStringValue();
if(tableCardsOfPlayers[seat] == undefined) tableCardsOfPlayers[seat] = [];
for each(var userVar:UserVariable in userVars)
{
if (cardsArray.indexOf(userVar.name) != -1)
{
tableCardsOfPlayers[seat][userVar.name] = new Card();
}
}
}
但当我访问
trace(tableCardsOfPlayers["firstSeat"]["card1"]);
AS3调试器引发异常
"TypeError: Error #1009: Cannot access a property or method of a null object reference.";
我做错了什么?我在这里搜索了类似的问题,检查了每一行,一切似乎都很好
播放人员的表格卡片递归跟踪结果
--- secondSeat :
------ card2 : [object Card]
------ card4 : [object Card]
------ card3 : [object Card]
------ card5 : [object Card]
------ card1 : [object Card]
--- firstSeat :
------ card2 : [object Card]
------ card4 : [object Card]
------ card3 : [object Card]
------ card5 : [object Card]
------ card1 : [object Card]
递归跟踪函数:
public static function recursiveTrace (oObj:Object, sPrefix:String = ""):void
{
sPrefix == "" ? sPrefix = "---" : sPrefix += "---";
for (var i:* in oObj)
{
trace (sPrefix , i + " : " + oObj[i], " ");
if (typeof( oObj[i] ) == "object") recursiveTrace ( oObj[i], sPrefix); // around we go again
}
}
userTemp.getVariable(“seat”).getStringValue()返回什么?它返回seat名称,如“firstSeat”。您使用调试器尝试过吗?是的,调试器显示了这些键。但是当我跟踪整个TableCardsOfPlayer数组时,这些键的值不知何故是空的。。在递归跟踪中,需要如上所示的数组值。我编辑了我的问题,这是代码崩溃的那一行吗:TableCardsOfPlayer[seat][userVar.name]=“test”?