语法错误:在leftbracket之前期待分号

时间:2012-10-25 02:04:04

标签: actionscript-3 actionscript

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

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.

我看过许多似乎正在做同样事情的例子,我也试过单独定义对象,然后将它添加到数组中,同样错误。我也找到了答案,但我发现的所有问题都与这种情况有点不同。

2 个答案:

答案 0 :(得分: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派生的),请参阅12.2 Variable Statement from ES5-Annotated并注意它需要一个“标识符”,后跟一个可选的初始值设定项(=)或另一个声明(,)或结束声明(;)。

答案 1 :(得分:0)

仅限

level[0] = {};

level.push({});