1

最上位レイヤーのフレーム 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();

無効です。

プロダクションでは、式1varではなく、単純な識別子が必要です。パーサーは大まかにプロダクションを次のように処理しようとしました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 ES5 注釈付き変数ステートメントを参照し、「識別子」の後にオプションの初期化子 ( =) または別の宣言 ( ,) またはステートメントの終わり( ) が必要であることに注意してください;

于 2012-10-25T02:10:34.630 に答える
0

だけです

level[0] = {};

また

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