ユーザーがスペースバーを押すと、c1-c9とラベル付けされた一連の文字列から1つの文字列を取り出し、配列に分割して配列を表示してから関数の終わりにlinenumber変数をインクリメントして、次回にスペースバーが押されると、シリーズの次の文字列がトレースされます。ここで私は、スペースバーを押すたびに、しかし、私は、最初の文字列と行番号値の痕跡がなくて繰り返し取得なぜ私の変数がAS3で増分しないのですか
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);
function myKeyDown(e:KeyboardEvent):void {
if (e.keyCode == Keyboard.SPACE) {
trace("okay, the key was pressed, at least")
var displayarray:Array = this["c" + linenumber].split(" ");
trace(displayarray);
linenumber++;
trace(linenumber);
}
}
(前に宣言されている文字列と行番号変数)スクリプトの関連セクションがあります任意の増分。私はそれが「この」私ならば、私はいくつかのウェブサイト上のコードサンプルで見つかったとは全く理解していないが、私はコンパイルエラーを取得し、この行のブラケット
var displayarray:Array = this["c" + linenumber].split(" ");
前に何かを持っているかもしれないと思います"c"と行番号に "this"を付けずに参加しようとする。私は間違って何をしていますか?
'this [" x "]'は 'this.x'と同じですが、* xの識別子は識別子ではありません。したがって、これは[this ["c0"] '...' this ["c1"] '...')であり、疑わしいと思われますが、それは "有効"です。 –
良いニュースは次のとおりです。コードが正しいように見えます。エラーは別の場所です。 linenumberを初期化する部分を探します。ループするフレームのフレームスクリプト内にある場合は、繰り返しごとに初期値にリセットされるため、常に同じ値になります。 – weltraumpirat
@pst:その疑問はなぜですか?これは、プロパティに動的にアクセスするための唯一の方法であり、完璧です。 – weltraumpirat