1

我在顶层的第一帧有以下代码:

var level:Array = new Array();
var level[0] = new Object();

我收到以下错误:

Scene 1, Layer 'levels', Frame 1, Line 2
1086: Syntax error: expecting semicolon before leftbracket.

我查看了许多示例,这些示例似乎在做与我正在做的事情相同的事情,并且我还尝试单独定义对象,然后将其添加到数组中,但出现相同的错误。我也搜索过答案,但我发现的所有问题都与这种情况略有不同。

4

2 回答 2

5

语法/语法产生

var level[0] = new Object();

是无效的。

产生式需要一个简单的var标识符,而不是表达式1解析器粗略地试图将产生式视为var level;[0] = ..;(但由于缺少分号而失败,并且无论如何都会失败,因为[0] = ..;它也是无效的产生式)。

尝试:

var level:Array = new Array();
level[0] = new Object(); // no "var" here so it is a valid grammar production

或者,更简洁地说:

var level:Array = [{}];  // using Array and Object literal notations

1有关ANTLR 生产规则,请参见AS3.g。或者,对于 ECMAScript(AS 派生自它),请参阅ES5-Annotated 的 12.2 变量语句,并注意它需要一个“标识符”,后跟一个可选的初始化程序 ( =) 或另一个声明 ( ,) 或语句结束 ( ;)。

于 2012-10-25T02:10:34.630 回答
0

只有是

level[0] = {};

或者

level.push({});
于 2012-10-25T02:25:34.077 回答