■五年生一学期■

 今回は、条件分岐というASを使ってみましょう。
「条件分岐」は通称「if文」とも言われています。

◆条件分岐◆
条件分岐は、

if(条件式){指示式}

というスタイルで記述します。

 「条件」を満たした場合「指示」を実行する…という意味です

 当小学校では「もし〜だったら」と過程をする部分の式を条件式と呼ぶことにします。

 スクリプトエディタでは、半角スペースとTabは無視されますので、
見やすいように半角スペースを入れたり行数を多くして、

if(条件式){
    指示式
}


↑のような書き方をします。

 「指示式」の前の空白はキーボードの「Tab」ボタンを使って挿入します。

 ifのようにASの中で使われる単語は予約語と呼ばれていて、変数などのネーミングには使えません。
 では、hensu.pflを開いてください。
このままのフラッシュでは、名前を未記入のままでもカウントが始まってしまいます。

 フレーム7のRフレームアクションを↓のように追加します。


 プレビューしてみると、何も書かずに▲ボタンを押すと、「名無し」さんと表示されます。

指示式{jNamae="名無し";}は、
変数jNamaeを「『名無し』という文字列にする」という指示です。
変数が数値ではなく文字列の場合は「""」で囲みます。

条件式(jNamae=="")は、
""の間に何もありませんから「変数jNamaeに値がないとき」という条件になります。
条件式では、等しいを「==」で表します。

つまりif(jNamae==""){jNamae="名無し";}は、
「テキストボックスが未記入の場合は、『名無し』と表示する」というASになります。

 「==」のような記述法は比較演算子と呼ばれ、他に↓のようなものがあります。

条件比較演算子記述法
aとbが同じ場合==a==b
aがbより大きい場合>a>b
aがb以上の場合>=a>=b
aがbより小さい場合<a<b
aがb以下の場合<=a<=b
条件式1と条件式2が両方成り立つ場合&&条件式1&&条件式2
条件式1と条件式2のどちらかが成り立つ場合||条件式1||条件式2


 画面が切り替わる際、瞬間的にテキストボックスに「名無し」が表示されてしまうのは、
スクリプトがフレームカウントを1使っているからです。
 そうならないように、切り取り&貼り付けを使って↓のように移動します。(以降、「移動」とだけ記述)


 このように、スクリプトの挿入位置が悪いと残像の原因になりますので、注意してください。
 スクリプトの位置がずらせない場合は、直前に「画像消去」を入れましょう。

 次に、イベントリストのフレーム31にラベルを挿入し「爆発」と名前をつけてください。
 続いて「画像消去:ALL」

 ファイルリストのID0008に「どか〜ん」というテキストをMSPゴシックで作り、
イベントリストの「画像消去:ALL」の後に追加します。
 通常画面にしサイズなどを変化させて効果を出すといいでしょう。

 その後ろに「アクション 停止」を入れます。

 しかしこれだけでは、ラベル「カウント」をループさせてあるため、ラベル「爆発」は再生されません。

 そこでスクリプトの登場です。
↓のようにRフレームアクションを書き加えます。


条件式(jCount<=0)は、
「jCountが0以下になったとき」という条件です。
今回の場合は必ず0を通るので(jCount==0)でもいいのですが、
今後ゲームなどを作るとき、持ち点が10のときマイナス20の失点をしていきなり持ち点が-10なるケースもあるので、
比較演算子「<=」の方を使うようにしましょう。

指示式{this.gotoAndPlay("爆発");}は、
「ラベル『爆発』にジャンプする」という指示です。
Rフレームアクションでのthisはルートのタイムラインを指します。

gotoAndPlay()は、「()にジャンプして再生する」というコマンドを下します。
()内が数字の場合はそのフレームへジャンプ
()内が""で囲まれた文字列なら、その名前がついたラベルへジャンプ

つまりif(jCount<=0){this.gotoAndPlay("爆発");}は、
「もしjCountが0以下になったら、ラベル『爆発』にジャンプする」というASになります。

 gotoAndPlay()のように指示文中でコマンドを下す文は「定義済みメソッド」と呼ばれています。
定義済みメソッドも予約語ですので変数などの任意のネーミングには使えません。

 「メソッド」は「コマンドを下すための指示」のひとつです。


 ここまでのフラッシュです↓。

◎プロジェクトファイルsample51.pfl

 上書き保存してくだい。

 名前を記入するとなぜ爆発するかということは、この段階では不問にしてください。

 一学期はこれで終了です。

五年生二学期へ

TOPへ

inserted by FC2 system