処理の流れ'if'アクションは、条件を評価して、判定が'true'であればステートメントを実行します。'else'アクションを含むと、結果が'false'の場合に、指定されたステートメントを実行します。if'アクションは、最初の'if'で条件が'false'と評価されたときに、さらに条件を指定してステートメントを処理することができます。以下のサンプルスクリプトをMovieClipのオブジェクトアクションに設定すると、水平方向に往復を繰り返します。左右の折り返し座標は、左が0で右が550(デフォルトのステージの両端)、移動の速度は1フレーム10ピクセルです。(load)'ハンドラで設定しています。MovieClipの'_X'プロパティは、基準点の座標です。折り返し座標に達したかどうかは、この基準点をもとに計算しています。サンプルスクリプトで使用しているメソッド・アクション・演算子などについて、詳しくは「ActionScript辞書」をご参照ください。if'は、'else'アクションの中に'if'アクションを記述(ネストあるいは入れ子に)したのと同じ処理になります。上述のスクリプトで条件判定の部分は、以下のように記述することもできます。if'アクションを使った方が、スクリプトは見やすくなります。if'アクションは、「ActionScript辞書」に記載がありません。これは単なる漏れだと思われます。Dictionary(ActionScript辞書英文改訂版)には、掲載されています。条件が'true'と評価されると、指定されたステートメントを実行して、そのレベルの条件分岐処理は終了します。if'の条件を同時に満たす場合であっても、そのステートメントは実行されません。したがって、条件を判定する順序は重要です。この点を理解して、うまく整理すると、すっきりとしたスクリプトを書くことができます。2000年問題で、閏年が注目されました。閏年は、4で割れる年です。100で割り切れる場合には、例外として閏年になりません。その例外として、400で割り切れる場合には閏年です。この最後の例外まで考慮していないプログラムは、2000年を閏年でないと判定して、問題の生じる可能性があった訳です。閏年を判定する関数をActionScriptで書くとどうなるでしょう。これは、例外から先に処理していくと、見やすい構造になります。見やすさか速さか閏年判定のスクリプトは、見やすい構造になっています。処理の速度を考えると、問題がないわけではありません。条件判定は、'true'と評価されたら指定のステートメントを実行して、その処理を抜けます。先に'true'と判定されれば、後の判定をやらずに済みます。最後の判定まで'true'と評価されなければ、条件の数だけ処理が増えることになります。考えて上述のスクリプトを見ると、真っ先に処理を終えるのは400年に一度の閏年の場合です。逆に、約4分の3を占めるはずの通常の年は、最後の判定まで処理を抜けられません。処理の効率からいうと、これは決して最適とはいえないのです。効率を考えて条件の順序を変えたのが、以下のスクリプトです。bResult;}任意の年を大量に判定する場合には、このスクリプトの方が処理は速くなります。見やすい構造とはいえないかもしれません。見やすさと速さのどちらを優先するかは、その処理の内容によります。ゲームのアニメーションを制御するスクリプトでしたら、スピードが重要なことも多いです。閏年を判定する関数の場合には、大量一括処理をするというケースはあまり考えにくいといえます。そのときには、スクリプトの見やすさを優先した方がよいでしょう。速さを上述の効率を考えたスクリプトには、まだ若干処理速度を改善する余地があります。条件の判定で、0以外の数値は'true'と評価されます。0)は、単に(nYear%整数)と記述することができます。つぎに、判定後のステートメントで、結果を一旦変数bResultに代入している点です。これは、条件が'true'と評価された場合には、他の判定を行うことなく処理を抜けることを示すため、このような記述にしました。変数に代入せず、直接'return'アクションで値を返す方が、簡潔な処理になります。'return'アクションは、値を返して、直ちに関数の実行を終了します(詳しくは、「ActionScript辞書」をご参照ください)。'?:'条件演算子を使うと、さらに処理が速くなります。'?:'は、条件の評価に対応して値を返す演算子です(詳しくは、「ActionScript辞書」をご参照ください)。Excelの'if'関数のようなものと考えればよいでしょう。if/else'条件処理の代替になるとはかぎりません。今回の例のように、値を返す処理の場合には、この演算子を使うとスピードが速くなります。以下が、'?:'演算子を使ったサンプルスクリプトです。処理構造は、上述の効率を考えたスクリプトと同じです。サンプルは見やすいように途中改行を入れていますが、「アクション」パネルの「ノーマルモード」では、'return'アクションのステートメント1行になります。解説はつけませんので、練習問題として考えてみてください。