ユーザー関数の定義と実行 - 1
では実際に、skip_btnを押したときの処理を関数で実行してみましょう。
skip_btnが押されたときの関数
skip_btnが押されたときは、次の処理を実行する2つの関数を用意します。
- 変数に次の写真の番号をセット(関数名:set_next_pict)
- 写真を変更(関数名:chg_pict)
実際に記述するコードは下記になります。
actionレイヤーのinitフレームに記述
initフレームのコードに、上記を追記します。
変数の宣言
まずNumber型の変数を2つ宣言しています。変数Active_pictは、拡大表示する写真の番号を代入するための変数です。初期値として0を代入しています。
変数Timer_idは、自動スライドショーを実行するために必要な変数です。現時点では使用しませんが、変数の宣言だけ行っておきます。
関数set_next_pict
関数set_next_pictでは、まず変数Active_pictに1を加算しています。++は現在の値に1つ加算するという演算子で、インクリメントと呼ばれています。
そしてif文を使って、Active_pictの値が8より大きくなった場合は、Active_pictに0を再代入しています。写真の番号が8までしか存在しないからです。この処理によりActive_pictには、0から順に1を加算された値が代入され、9になった時点で再度0が代入されるようになります。
そして次に関数chage_pictを実行しています。このように関数内から関数を実行することは珍しくありません。1つの関数からいくつもの関数を実行したり、連鎖的にいくつもの関数を実行することはプログラムの世界では常套手段です。
関数chage_pict
関数chage_pictでは、pict_mcのフレームを移動させています。+演算子で、文字列の"pict"と変数Active_pictを連結し、gotoAndStopメソッドでフレームを移動させています。例えばActive_pictに5が代入されていた場合は、"pict5"フレームに移動し、結果として5枚目の写真が表示されるという仕組みになっています。
関数set_next_pictの実行
関数の定義が出来たら、skip_btnが押されたときに、関数set_next_pictを実行するように記述します。関数set_next_pictを実行することで、連鎖的に関数chg_pictも実行されます。これでskip_btn用のスクリプトは終わりです。
skip_btnに記述
prev_btnが押されたときの関数
prev_btnが押されたときは、次の処理を実行する2つの関数を用意します。
- 変数に前の写真の番号をセット(関数名:set_next_pict)
- 写真を変更(関数名:chg_pict)
2はすでに用意していますので、1の関数set_prev_pictのみを追加します。
actionレイヤーのinitフレームに記述
関数set_prev_pictの処理
関数set_prev_pictの処理は、先ほどの関数set_next_pictとかなり似ています。まずは変数Active_pictを1減算しています。--は現在の値に1つ減算するという演算子で、デクリメントと呼ばれています。
そしてif文を使って、Active_pictの値が0より小さくなった場合は、Active_pictに8を再代入し、さらに関数chage_pictを実行しています。
関数set_prev_pictの実行
関数の定義が出来たら、prev_btnが押されたときに、関数set_prev_pictを実行するように記述します。関数set_prev_pictを実行することで、連鎖的に関数chg_pictも実行されます。これでprev_btn用のスクリプトは終わりです。
prev_btnに記述
この時点でプレビューすると、next_btn、prev_btnを押すと写真が変わるようになりました。