我目前正在玩flex,我有C ++背景,所以我不习惯AS3。 问题出在主* .mxml文件中我有fx:script块,我尝试定义一个多维数组:
public var Board:Array = new Array(25);
我使用函数初始化2d数组:
public function initBoard():void {
var i:int;
var j:int;
for (i = 0; i < 25; i++) {
Board[i] = new Array(40);
for (j = 0; i < 40; j++) {
Board[i][j] = 0;
}
}
}
此函数稍后在主循环中调用init并重置“board”为什么它不起作用。与AS3文档的唯一区别在于它是在函数中完成的。是否存在范围问题?
期待感谢你, 尼克拉斯沃斯
P.S。我希望有人可以告诉我为什么它不起作用以及如何做到这一点......
答案 0 :(得分:5)
你有i
应该有j。
for (j = 0; i < 40; j++) {
这应该可以解决你的问题。
for (j = 0; j < 40; j++) {
答案 1 :(得分:3)
您不需要在AS3中定义数组长度 - 我只使用[]
运算符来创建新数组。您还使用了i
,其中最内层j
循环中需要for
。
function initBoard():Array
{
var board:Array = [];
var i:int = 0;
var j:int;
for(i; i<25; i++)
{
board[i] = [];
j = 0;
for(j; j<40; j++)
{
board[i][j] = 0;
}
}
return board;
}
trace(initBoard());