基礎から学ぶActionScript 3.0

else ifステートメント

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
条件を複数加えるときは、else ifステートメントを用います。アニメーションに、左方向にループする処理を加えます。右方向のループと反対の操作です。
講師:
08:17

字幕

このムービークリップインスタンスは、 水平にスクロールをしています。 そして、スクロール方向が、 マウスポインタの位置によって 変化するようになっています。 右側にあると左方向、 左側にあると右方向です。 そして、右方向、 インスタンスの位置が ステージ端を越えると、左から出てきます。 けれど、左側に行った場合、 左端を越えても、 右側にスクロールして戻ってきません。 この処理を加えたいと思います。 スクリプトは、ムービークリップシンボルの 中に書いてありますので、 ムービークリップを開けてみましょう。 ステージ用のインスタンスを ダブルクリックします。 そうすると、シンボルが開いて、 「シーン1」の右側に、 シンボルの名前と、 アイコンが表示されました。 スクリプトは、 シンボルのタイムラインの scripts レイヤーに書いてあります。 右クリックで、 「アクション」パネルを開きましょう。 現在のスクリプトの流れを ざっと確認します。 まず、アニメーションですから、 addEventListener で、 Event. Enter_FRAME の イベントに、 リスナー関数が登録されています。 そして、リスナー関数の中で、 アニメーションの処理を行っています。 まずは、方向が変わる部分の処理です。 それが、この if ステートメントと else の組み合わせになっています。 マウスポインタの座標、 Stage から見た マウスポインタの x 座標が、 ステージ中央... ステージ中央は、 ここで変数で定めてあります。 ...よりも小さい、 つまり、左にある場合には、 nSpeed の値を nNewSpeed という、 ローカル変数に代入しています。 nSpeed の値は +5 です。 もし、この条件に当てはまらない場合、 というのは、 マウスポインタが右半分にいる場合ですね。 その時は nSpeed の値、 変数値を、 - (マイナス)を付けて代入しています。 つまり- 5 が nNewSpeed に入ると、 +(プラス) と -(マイナス)が ここで切り替わるわけですね。 そして、 その値を x 座標、 x プロパティに代入していますので、 マウスポインタの位置によって、 スクロールする方向、 スピードが変わるということになります。 「インスタンスの位置が 右側をはみ出したら、 左側から出てくる。」というのが、 次の if ステートメントです。 StageRight nStageRight というのは、 ステージ幅を代入してありますので、 ステージの右側の位置になります。 それよりも、インスタンスの x 座標、 x プロパティが大きくなったら、 越えたら、 ステージ幅を差し引いてますので、 左側にスクロールして 現れるということになるわけです。 では、そうでない場合ということで、 else と書いて、 「左側から越えたら、右側に出てくる。」 という処理を、加えてはいけません。 なぜかというと、 else というのは、 この条件に当てはまらない場合 すべてを含みます。 この条件に当てはまらない場合というのは、 左端を越えた場合は もちろん含みますけれども、 普通にステージ上をスクロールしてる場合も、 この条件に当てはまらない場合になります。 それを全部、右端に持って来てしまっては、 まずいですね。 ということなんで、ここにさらに、 条件をもう1つ加えて、 左端を越えた場合、 「左端よりも x 座標が小さくなった場合。」 という条件を加える構文が必要です。 それをご紹介しましょう。 if 条件が満たされない場合に、 さらに、条件を加えて判断するのが、 else if ステートメントです。 if / else if ステートメント ということで、 まず if で条件1を定め、 この条件が満たされた場合には、 この {} の中の処理を行います。 これは if ステートメントの 原則通りです。 そして、この条件1が満たされない場合、 条件2を追加し、 条件 2 が満たされた場合には、 else if の後の {} の処理を行います つまり、条件1が満たされた場合には、 if 条件、 if ステートメントの後の {} を、 条件1が満たされず、 なおかつ、条件2が満たされた場合には、 else if の後の {} の処理を行います。 どちらも満たされない場合には、 この場合、この中の処理はスキップして、 次の処理に移ります。 条件1も条件2も どちらも満たさない場合の 処理を加えたいときには、 else を付け加えます。 そうすると、条件1が満たされれば、 if ステートメントの処理。 条件2が満たされれば、 else if ステートメントの条件処理が行われ、 どちらも満たされない場合には、 else の後の {} の処理が行われます。 なお、2つ補足をしておきます。 まず、条件1と条件2の、 両方満たされる場合、 条件1の判定のほうが先ですので、 if ステートメントの後の {} の中の処理が行われて、 else if の処理は行われません。 いわば、クイズ番組の 勝ち抜けみたいなもんですね。 先に回答してしまえば、 そこを抜けてしまいます。 ですから else if は 条件1が満たされず、 回答ができずですね、 回答者で言えば。 そして、条件2が満たされた場合、 条件2が回答できた場合は、 抜けるというかたちになります。 補足の2つ目は、 条件が3つ以上ある場合です。 3つ以上の条件も定めることができます。 というのは、 else if ステートメントは、 いくつ加えても構いません。 ですから else if 条件3 else if 条件4と、 どんどん付け加えて構いません。 但し if と else は 1つの条件判定の中で、 1回ずつしか使えません。 if が当然、先頭になります。 ムービークリップシンボルの フレームアクションに、 条件判定を加えましょう。 右端を越えた場合でない場合ですね。 そこに「左端を越えた場合」という 条件が加わりますから、 else if です。 条件は、同じような感じですけれども、 x 座標が x プロパティの値が、 左端が 0 ですので、 0 よりも小さくなった場合ですね。 考え方が似ているので、 ここをコピーして使ってしまいます。 その場合、どうしたらいいかというと、 ステージ幅を引くのではなく、 足し込むというかたちになりますね。 こうすれば、 「左端から出た場合は、右端に戻ってくる。」 ということになります。 ムービープレビューで確かめてみましょう。 「制御」>「ムービープレビュー」です。 まず、右から越えたら左から出てくる。 これはいいですね。 今度、左側から越えたら、 右から出てきました。 これでどちらのサイドも、 ぐるぐると回ってくれることになります。 では、 SWF は閉じます。 if / else if ステートメントについて、 復習しましょう。 条件を判定する場合の if else if else ステートメントの使い方です。 まず if ステートメントで、 条件を1つ呈します。 そして、その条件に当てはまる場合には、 {} の中の処理が行われます。 さらに、条件を付け加えたい場合には、 else if を使います。 else if で条件を定めると、 if 条件が満たされない場合で、 なおかつ else if の 条件を満たされる場合に、 else if の後のステートメント {} の中が実行されます。 さらに、条件のいずれも満たされない場合の 処理を加えたい場合には、 else を付け加えると、 条件がどれも満たされない場合に、 else の中の {} が処理されます。 以上が、条件を判定した処理の仕方です。

基礎から学ぶActionScript 3.0

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

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

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

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

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