基礎から学ぶActionScript 3.0

elseステートメント

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
if条件に当てはまらない場合に行う処理は、elseステートメントで加えます。マウスポインタの水平座標を調べて、ステージの右側か左側かによって、移動する方向を変えます。
講師:
08:11

字幕

水平スクロールする インスタンスのスクロール方向を、 マウスポインタがステージの右側にあるか、 左側にあるかによって、 変えてみたいと思います。 条件判定に 条件が当てはまった場合の他に、 条件に当てはまらない場合の処理 というのを加えることになります。 SWF は閉じます。 今、開いている Flash ムービーファイルは、 インスタンスが単純に 右にスクロールするだけで、 マウスポインタの位置によって 方向は変わりません。 現在のスクリプトを確認しておきましょう。 ムービークリップシンボルの中に 定義してありますので、 インスタンスをダブルクリックして、 シンボルを開きます。 「シーン1」 の横に、 シンボルの名前が出ましたので、 現在、シンボルの編集状態です。 「タイムライン」、 シンボルの「タイムライン」の scripts のレイヤーに、 「アクション」パネルを開いて、 アクションを確認してみましょう。 単純な、右スクロールのアニメーションに、 「ステージの右端をインスタンスの位置が 越えたら、左端に戻る。」という、 処理だけ加えてあります。 確認しますと、 まず addEventlistener で アニメーション用のイベント、 Event. ENTER_FRAME で、 リスナー関数を登録しています。 そのリスナー関数では、 インスタンスの x 座標を、 一定の数値、 現在 5 になっていますけど、 5 ピクセル、 マイフレーム加算します。 ですから、右に動くだけなんですが、 もし、位置がこの変数値... というのは、ステージの幅ですけれども、 ステージの幅、 つまり、右端を越えた時は、 ステージの幅分、座標を差し引く、 つまり、左側に戻すという 処理になっています。 加えたいのは、現在、単純に X 座標に一定値を加算する。 この前に、マウスポインタの 座標位置を条件判定して、 右側にあるか、左側にあるかによって、 この加算する値の + (プラス)、 - (マイナス)を変えたいと思います。 そのためには、 条件判定をする if に加えて、 else というステートメントを、 合わせて判定する必要があります。 if / else ステートメントの 構文をご説明します。 まず if ステートメントだけですと、 条件があって、条件に当てはまる場合、 その後に続く {} の中の処理を行います。 if ステートメントだけですと、 条件に当てはまらない場合は、 {} の中の処理はせず、 次に進んでしまいます。 けれども、マウスポインタの 位置が右側の場合と、 左側の場合と、2つあります。 そして、2つの内の どちらかの状態になるわけですが、 それぞれについて 処理をさせたいという場合には、 else という ステートメントを付け加えます。 そうしますと、条件に当てはまる場合は、 if ステートメントの本来の原則通り、 {} の中が処理されます。 そして else を付けますと、 条件に当てはまらない場合は、 単純にスキップせずに、 else の後の {} の処理が行われます。 つまり、条件の当てはまるか、 当てはまらないかによって、 こちらの処理か、 こちらの処理か、 どちらかが必ず、実行される ということになるわけです。 ムービークリップシンボルの フレームアクションに戻りました。 マウスポインタの位置が、 ステージの右側か左側かによって、 進む方向を変えます。 具体的には、現在 nSpeed 5 という値が入っているですが、 この 5 の + - を変えて、 移動させたいと思います。 そのために、+ - を変えた値を 入れるための変数を、新たに設けます。 nNewSpeed としましょう。 そして nSpeed の変数値は 5 のまま、 これに + あるいは - をつけて、 この nNewSpeed に代入します。 そのために、条件判定がここに入ります。 条件判定をした後に、 この nNewSpeed に入った、 + - の値が入った数値を、 x 座標のプロパティに入れます。 そうすると、マウスポインタの位置によって、 + 5 動いたり、 - 5 動いたり ということで、方向が変わります。 条件判定の処理を書く前に、 まず、マウスポインタが 右か左かを判定するための、 ステージの真ん中がほしいですね。 ですから、それを変数として宣言します。 nStageCenter とします。 データ型は Number です。 センターはというと、 この nStageRight を 半分にすれば良いですね。 「割る 2」ということで、設定します。 if ステートメントを加えます。 if で () の中に条件を入れて、 {} です。 条件は、「マウスポインタの座標は」 ということなんですが、 マウスポインタの座標は、 水平で見ますので、 mouseX を調べます。 但し、その時、 「誰から見たマウス座標か」 ということが重要ですね。 今回は、「インスタンスから見た」 ではありません。 一番上 、「Stage から見た」 ということになります。 インスタンスが動くたびに、 マウスポインタの x 座標が 変わって判定されてしまったら、問題ですね。 動かない Stage から見た マウス座標になります。 マウスの x 座標ですね。 それが、ステージセンターよりも小さい場合、 左だった場合ということになります。 nStageCenter を コピーして、持ってきます。 その場合 nNewSpeed の値は、 プラスの値にします。 nNewSpeed をそのまま入れます。 つまり+5 ですね。 それから nNewSpeed これ、型指定してませんでした。 Number です。 次に else を加えます。 「もし、この条件でなかったら」、 つまり、左側でなかったということは、 右側の場合ですね。 nSpeed の + - を変更します。 これをコピーして、 間違えないように - にするということですね。 では、ムービープレビューを確かめましょう。 「制御」>「ムービープレビュー」です。 マウスポインタの位置が右側に行くと、 左側にスクロール。 左側に行くと、右側にスクロールする。 ちゃんと条件判定が動いてますね。 但し、右側に行った場合は 左側から現れるんですが、 「左側に進んだ場合には、 右側にスクロールする。」 という処理が書いてありません。 これは、 さらに付け加える必要があります。 では if と else if の 構文について、おさらいをしましょう。 if / else ステートメントについての 確認をしましょう。 if ステートメントは条件を定めて、 条件に当てはまれば、 そのあとに続く {} の内容を処理します。 else ステートメントは、 必ず if とセットで使われます。 そして、条件に当てはまらない場合の処理を、 {} の中に記述します。 つまり if と else をセットで 使った if / else ステートメントは、 「2つの処理を用意して、条件によって どちらか一方を必ず処理する。」 ということになります。 ここでは、 if / else ステートメントを使って、 スクロールする方向を マウスポインタの右か、左か、によって、 変えるという処理を使ってみました。

基礎から学ぶActionScript 3.0

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

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

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

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

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