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

问题描述 投票:1回答:2

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

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.

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

actionscript-3 actionscript
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派生的),请参阅12.2 Variable Statement from ES5-Annotated并注意它需要一个“Identifier”,后跟一个可选的初始化器(=)或另一个声明(,)或语句结束(;)。


0
投票

只是

level[0] = {};

要么

level.push({});
© www.soinside.com 2019 - 2024. All rights reserved.