语法错误:在leftbracket之前期待分号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语法错误:在leftbracket之前期待分号相关的知识,希望对你有一定的参考价值。
我在顶层的第一帧有以下代码:
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.
我已经看过许多似乎正在做我正在做的事情的例子,我也尝试分别定义对象,然后将它添加到数组中,同样的错误。我也在寻找答案,但我发现的所有问题都与这种情况有点不同。
答案
语法/语法生成
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”,后跟一个可选的初始化器(=
)或另一个声明(,
)或语句结束(;
)。
另一答案
只是
level[0] = {};
要么
level.push({});
以上是关于语法错误:在leftbracket之前期待分号的主要内容,如果未能解决你的问题,请参考以下文章