基礎から学ぶActionScript 3.0

if/else ifステートメントをswitchステートメントで書替える

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
switchステートメントはひとつの式を対象にして、等しいかどうか比べる式をcaseステートメントで書き加えます。 breakステートメントを入れ忘れないように気をつけましょう。
講師:
10:31

字幕

このムービークリップインスタンスは、 上下左右の矢印キーで操作ができます。 上下左右の矢印を押すと、 その方向に1ピクセルずつ動きます。 例えば、左。 押すたびに1ピクセル。 上ですね、押すたびに 1ピクセルずつ、 ちょっと見難いかもしれませんが、 移動しています。 これに手を加えます。 キーボードから Shift キーを押しながら、 上下左右を押した時に、 上下左右 10 ピクセルずつ、 つまり、移動量を増やします。 例えば、Shift を押しながら 右を押すと、 今度はハッキリ見えますね。 10 ピクセルずつ。 Shift キーを押しながら、 下で 10 ピクセル。 この操作をするためには、 キーボードを押した時、 Shift キーを 押しているかどうかを調べて、 その結果によって、 移動量を変える必要があります。 今、開いている Flash ムービー、 fla ファイルは、 上下左右の矢印キーで、 1ピクセルずつ動くという ところまでは作ってあります。 ムービークリップシンボルの中に スクリプトは書いてありますので、 インスタンスをダブルクリックして、 シンボルを開けます。 「シーン1」の右側に、 ムービークリップの アイコンと名前が出てきましたので、 現在、ムービークリップシンボルの 編集状態です。 「タイムライン」の scripts のレイヤーの、 キーフレームを右クリックして、 「アクション」パネルを開きます。 フレームアクションの内容を 簡単に確認しましょう。 まず、キーボードのキーを 押したかどうかは、 addEventListener の メソッドを、 stage に対して呼び出します。 そして、キーを押した場合には、 KeyboardEvent.KEY_DOWN になります。 EventListenerを登録し、 その EventListener は、 eventObject を受け取ります。 どのキーを押したかは、 eventObject の .KeyCode というプロパティで 得られますので、 そのキーが if 条件、 if ステートメントで、 KeyCode.LEFT これが Keyboard の LEFT キー、 左キーを押した時の キーのコード番号になります。 同様に RIGHT 、 UP 、 DOWN それぞれに等しいかどうかを調べ、 もし等しい時には、その方向に、 LEFT か RIGHT であれば、 水平方向ですね。 UP か DOWN であれば、 垂直方向に、 座標を、xy 座標を どちらかに動かします。 Shift キーを 押したかどうかというのも、 KeyCode と同じように、 eventObject から調べることができます。 KeyboardEvent の EventListener が受け取る eventObject には、 いろいろなプロパティがあって、 その1つが、まず KeyCode ですね。 これは、押したキーが何かを その KeyCode の番号として、 調べることができます。 それから、同時に、 押しているかどうかを調べられるキーに、 Ctrl 、 Alt 、 Shift があります。 今回は、この Shift を 使いたいと思います。 ですから、キーボードのイベント、 イベントオブジェクトの .shiftKey で、 Shift キーが押されていたか どうかということがわかるわけですが、 この値は Boolean 値といいますけれども、 押されたか押されていないか、 2つに1つですね、 2つに1つの値を持ちます。 押されている場合は true 押されていない場合は false です。 シンボルのフレームアクションに、 Shift キーが押されていたかどうか、 収める変数を宣言します。 bShiftKey とします。 bShift でいいでしょうか。 そして、値は Boolean です。 Bo で Boolean が ハイライトしましたので Enter そして eventObject から プロパティを調べます。 調べるのは、 こちらの shiftKey ですね。 さて、この後、この値が true つまり Shift キーを押していた場合には、 移動ピクセル数を 10 false 押されていなかった場合には、 移動ピクセル数を 1 にします。 勿論 if ステートメントを 使うことも可能ですが、 もう1つ別の、「条件演算子」というものを 使ってみたいと思いますので、 それをご説明します。 「条件演算子」というのは、 条件によって異なる値を返します。 演算子というのは普通、 例えば、代入の演算子 = は1つですね。 ところが、 条件演算子は一風変わっていまして、 2つのセットになっています。 この ? と、 : です。 まず ? の手前に条件を定めます。 そして、条件に当てはまると、 次の ? の後、式1の値が返されます。 返されるというのは、 その値を変数に代入できるということです。 条件に当てはまらない時は、 : の後の、 式2の値が返されるということで、 代入をしたい場合、 条件によって異なった値を入れるという時に、 非常に便利です。 シンボルのフレームアクションのほうですが、 Shift キーのプロパティ値が、 true か false か、 押されていたかいないか。 押されていた場合には、 移動量を 10 ピクセル。 押されていない場合には、 1ピクセルにします。 そのピクセル数を入れる変数を定めます。 nPixels としましょう。 そして、これは、 値は Number です。 ここで、条件演算子を使います。 条件は、「変数に入れたこの値が true に等しかったら。」 「等しかったら」は == ですね、 true () を付ける必要はないですが、 条件であるということが分かりやすいように、 () を付けておくことにします。 そして ? ですね。 この後、「Shift キーが 押されていたら」ですから、 10 ピクセルです。 次 : 押されていなかったら 1 ですね。 そして ; で、 ステートメント終了です. そして、この nPixels という値を、 移動量として、位置の代わりに、 ベースとして入れればいいでしょう。 これで、上下左右の矢印キーを押した時、 Shift キーを押していなければ、 1 ピクセルずつ、 押していれば 10 ピクセルずつ 動くことになります。 ムービープレビューで確認してみましょう。 「制御」>「ムービープレビュー」です。 まず、上下左右、普通に押します。 上、下、左、 2回押してますけどね、 右。 Shift キーを押したまま、上を押します。 1回に 10 ピクセルですね。 下押します。 Shift キーを押したまま、 左、右と、 確かに移動量が増えています。 では、 SWF を閉じましょう。 では、「アクション」パネルで おさらいをします。 キーボードからキーを押した時、 同時に Shift キーも 押されているかどうかというのは、 リスナー関数が 受け取った eventObject の、 shiftKey プロパティで 調べることができます。 値は、押していれば true 押していなければ false という Boolean 値。 2つに1つの値です。 それが返ります。 その返された値を使って 移動ピクセル数を変えたんですが、 今回は if ステートメントでなく、 条件演算子を使いました。 ? と : です。 条件に当てはまれば、 ? の後の値が返り、 当てはまらなければ、 : の後の値が変わります。 条件に応じて返す値を 変えるという時に便利です。 以上、キーボードから Shift キーを押した時、 その押されていたかどうかを判定して、 移動量を変えるという ムービーの作り方についてご説明しました。

基礎から学ぶActionScript 3.0

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

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

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

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

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