関数の使い方

関数とは、プログラムの一部をひとまとめにしたものです。関数にしておくと、同じ処理を行う際に2箇所で同じプログラムを書く必要がなくなり、効率的です。また、違うプログラムを作成する際に再利用しやすいという特長もあります。

関数定義

関数は以下の形で定義します。

function 関数名 (引数1, 引数2, ..., 引数n) {
    ブロック
}

変数名と同様に関数名をつけます。引数は関数に渡すデータのことで、必要ない場合には()のみ記述します。

例 Hello, Worldを表示する関数

function sayHello () {
    trace("Hello, World!");
}

この例では、引数は必要ないので引数部分は何も指定しません。

例 指定されたメッセージを表示する関数

function say (msg) {
    trace(msg);
}

与えられた引数msgの内容を表示します。これはtrace文そのものですね。

関数呼び出し

作成した関数を実行するには、関数呼び出しを行います。

関数名(引数1, 引数2, ..., 引数n);

例 関数sayHello()の呼び出し

sayHello();

この例では、引数は必要ないので引数部分は何も指定しません。

例 関数say()の呼び出し

say("Hello, World!");

引数に"Hello, World!"を渡して実行しています。

関数の終了と戻り値

関数定義のブロック中で関数の実行を終了して呼び出し側に戻るにはreturn文を使用します。

return 戻り値;

戻り値は、関数から呼び出し側にデータを渡したいときに使用します。戻り値は関数の値になります。戻り値が指定されていない関数の値はundefinedになります。

例 足し算を行う関数

function myPlus(a, b) {
    return a+b;
}

sum = myPlus(3,5);
trace(sum);

戻り値は関数myPlus()の値になります。

練習問題

ムービークリップballを_rotationの角度にspeedの数値だけ移動させるプログラム

  1. 1フレームにムービークリップシンボルballを作成。以下のフレームアクションを記述。
    speed=10;
    ball._x+=speed*Math.cos(ball._rotation/180*Math.PI);
    ball._y+=speed*Math.sin(ball._rotation/180*Math.PI);
  2. キーフレームを挿入。以下のフレームアクションを記述。
gotoAndPlay(1);

上記のプログラムについて以下の問に答えなさい。

  1. speedを引数とする関数move(speed)を用いたプログラムにせよ。
  2. ムービークリップとspeedを引数とする関数move(mc, speed)を用いたプログラムにせよ。