基礎から学ぶActionScript 3.0

配列を使った矢印キーによるインスタンスの移動-後編-

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
配列は整数インデックスに値を納めます。インデックスに整数でなく名前をつけたいときには、Objectクラスを使う方法が考えれます。
講師:
07:50

字幕

このタイムラインに置いたインスタンスは、 キーボードの矢印キーで 動かすことができます。 左矢印で左に、 右の矢印で右側に、 そして、上矢印、下矢印という具合です。 このような動きをさせるためには、 KeyboardEvent に登録した リスナー関数で、 どのキーを押したかという KeyCode を調べ、 その後、条件判定で 動きを決めるのが一般的です。 けれども、ここでは配列を使って、 条件判定でなく、配列を使って 動きを決めてみたいと思います。 このタイムラインに置いた ムービークリップインスタンスは、 キーボードで押されたキーを if ステートメントで判定して、 上下左右に動かすようにしています。 まず、そのスクリプトの内容から 確認しましょう。 スクリプトはムービークリップシンボルの フレームアクションとして 書いてありますので、 インスタンスをダブルクリックして、 シンボルを開きます。 「シーン 1」の右側に、 ムービークリップシンボルの アイコンと名前が出てきましたので、 現在、シンボルを開いて、 編集状態になっています。 そして、 scripts レイヤーの キーフレームで右クリックをして、 「アクション」パネルを開けます。 キーボードからキーを押した場合の キーボードイベントは、 KeyboardEvent.KEY_DOWN になります。 addEventListener は、 Stage オブジェクトに対して、 呼び出すことになります。 そして、そのリスナー関数は eventObject を受け取って、 eventObject の keyCode というプロパティで、 どのキーを押したのかという キーの番号を得ます。 そして、そのキーの番号が、 左の場合と、 Keyboard クラスの中に係数があって、 左の場合、右の場合、上の場合、 それから下の場合の KeyCode が入っています。 ですから、 KeyCode が もし、左の KeyCode だったら x 座標を左に、 右矢印の KeyCode だったら 右に、 上矢印であればインスタンスを上に、 下矢印であれば下に、 というふうにして、 条件判定で、 上下左右の動きを実現しています。 ここでのお題は、 if ステートメントを使わずに、 配列で、この上下左右の 動きをしようということです。 いきなり上下左右は、 ちょっと大変なので、 まずは、水平の動きを作ることにします。 ですから、 else if この部分を削除します。 左右に動くだけですね。 では配列を使って どのように考えたらいいでしょうか? ちょっと、このステートメントを 書き換えましょう。 下と同じように+= にします。 ということは、 代入する、加算する値を、 - (マイナス)にすればいいですね。 これで考えてみましょう。 この if ステートメントでやってることは、 取り出した KeyCode KeyCode プロパティの値が、 Keyboard.LEFT これは数字の 37 です。 37 だったら -1 にすると、 Keyboard.RIGHT 39 です。 39 だったら 1 にする。 37 だったら -1 、 39 だったら 1 であれば、 配列のインデックス 37 に -1 を入れ、 インデックス 39 に 1 を入れて、 取り出すようにしてもいいですね。 では、配列を新たに1つ宣言しましょう。 まずは空っぽで入れます。 キーのオペレーションですから、 keys にしましょうか。 型指定は、 配列ですので Array です。 そして作るのは、 簡単な [ ] にしましょう。 勿論 newArray() でも構いません。 そしてここに、 「37 だったら」というと分り難いので、 この Keyboard クラスの定数を やはり使うことにします。 そして、この時は -1 ですよね、 -1 を入れます。 同様に keys の [ ] 。 Keyboard.RIGHT は コピーで持っていきます。 ここには 1 を入れればいい、 ということですね。 そして if ステートメントの部分は コメントアウトしましょう。 無効化します。 /* */ で、 この部分が無いことになります。 では、どうするかというと、 この値を取り出します。 keys と複数にしたんで、 取り出した値は key にします。 取り出すのはナンバーですので、 Number にして、 keys から、 この KeyCode の値を取り出します。 そして x 座標に加算すればいいですね。 key の値を加算します。 ムービープレビューで 結果を確かめてみましょう。 「制御」>「ムービープレビュー」です。 キーボードから左のキーを押してみます。 左に動きます。 右のキーを押します。 右に動きますね。 良さそうです。 ただし、1つ大きな問題があります。 左右の矢印キー以外のキー、 例えば、上矢印を押しますと、 とんでもない所に行っちゃうんですね。 これの原因を究明して、 解決したいと思います。 では、 SWF を閉じます。 コメントアウトした部分は いらないので削除してしまいましょう。 削除です。 この key という値に取り出されたもの、 どういう種類の変数値になってるか ということを確かめましょう。 trace します。 そして key これで、ムービープレビューを 確かめてみましょう。 「制御」>「ムービープレビュー」です。 「出力」パネルをご注目ください。 まず、左矢印1回押します。 そうすると、配列から 37 番が取り出されて -1 です。 次に右矢印を押すと、 配列から 39 番のインデックスの値、 1 が取り出されます。 それ以外には、 配列に値が入っていません。 例えば、先ほどと同じように 上矢印を押すと、 NaN というのを出てくるですね。 このなんか変な数字の、まさに なんか変な数字の NaN が入ったために、 ペンギンが端っこに 行ってしまったというわけです。 いったん、 SWF は閉じましょう。

基礎から学ぶActionScript 3.0

このコースではFlashのActionScript 3.0を初めて学ぶ方を対象に、ActionScriptの基礎から実際にプログラミングをするところまで学習していきます。簡単なスクリプトによるオブジェクトの操作の仕方から始まり、変数や関数といったプログラミングの基礎、そしてインタラクティブなコンテンツの作成まで詳しく解説いたします。

6時間30分 (49 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月16日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。