我在顶层的第一帧有以下代码:
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.
我看过许多似乎正在做同样事情的例子,我也试过单独定义对象,然后将它添加到数组中,同样错误。我也找到了答案,但我发现的所有问题都与这种情况有点不同。
答案 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({});