関数とは
Flashのマニュアルやヘルプでの「関数」の説明、および [ アクション ] パネルのメニュー項目の仕分けは、他のプログラム言語とは大きく異なり、理解に苦しむ内容です。特に、マニュアルやヘルプの説明はページによって矛盾を起こしていますので、まったく当てにできません。そこで、当サイトでは、他のプログラム言語と同様の定義と仕分けを採用して説明することにします。
特定の処理をする目的で用意された小さなプログラムのことを関数といいます。
具体例で見てみましょう。
[ アクション ] パネルの [ アクション ] メニュー項目に、play という関数があります。 [ アクション ] に分類されていますが実体は関数です。このようにシステムによってあらかじめ用意された関数を、
定義済み関数
といいます。
play はムービークリップを再生する関数です。関数は、関数名の後ろにカッコを付けて呼び出します( play() )。ユーザーにはどんなコードが記述されているのか分からないブラックボックスですが、 関数名 play にカッコを付けて呼び出すと、ムービークリップを再生することができます。
引数
関数には、さまざまな形を持ったものがあります。
まず、呼び出しの際に、関数に値を渡すものと渡さないものがあります。この関数に渡す値を引数といいます。
例えば、前述の play は引数を必要としませんが、指定したフレーム番号やラベルに移動する関数 gotoAndPlay はフレーム番号やラベル名を引数として関数に渡さなければなりません。
引数は関数呼び出しのカッコ内に記述します。引数が複数の関数も存在します。この場合は、引数をカンマで区切って記述します。
なお、引数の数や各引数のデータ型は、関数によって決められています。『ActionScript辞書』などを参考にして、正しい引数を渡してください。
戻り値
また、関数には値を返すものがあります。関数が返す値を戻り値または返り値といいます。
戻り値を返す関数は値を生成するので、式のなかで利用したり、関数だけで式を構成することができます。
なお、スクリプト内で戻り値を再利用するためには、変数に代入する必要があります。
グローバル関数とメソッド
[ アクション ] パネルの [ 関数 ] メニュー項目に仕分けされた関数は右下のとおりです(関数以外のもの、使用禁止の関数は除いてあります)。これらの関数はどのオブジェクトにも所属しないグローバル関数で、どのタイムラインに記述する場合でも、ターゲットパスを指定することなく、関数名だけを記述して呼び出すことができます。
[ アクションパネル ] の [ 関数 ] メニュー項目 |
[ 関数 ] メニュー項目内の関数
|
これに対し、各オブジェクト専用の関数も存在します。例えば、Booleanオブジェクトには、toString、valueOf という2つの定義済み関数が用意されています。
このような各オブジェクト専用の関数をメソッドといいます。
メソッドは、各オブジェクトに所属する関数なので、ターゲットパスを指定し、オブジェクトを特定して呼び出さなければなりません。また各オブジェクト専用の関数ですので、タイプの異なるオブジェクトを指定しても呼び出すことはできません。
Booleanオブジェクトの2つのメソッド
|
関数の見分け方
前述のとおり、[ アクション ] パネルのメニューには問題が多く、ActionScript でプログラムをはじめた人には、どれが関数なのか分かりづらいと思います。すべての関数を把握するには、『ActionScript辞書』を読む以外に方法はありませんが、ここで簡単に関数か否かを判断する方法を紹介しましょう。
[ アクション ] パネルのメニューで項目をダブルクリックすると、右のスクリプトウィンドウにスクリプトが挿入されます。このとき、後ろにカッコ()が挿入されるものが関数です(引数つきの関数はカッコ内に引数も挿入されます)。ただし、カッコの後ろに {} が挿入されるものは関数ではありません。もちろんカッコが挿入されないものも関数ではありません。
・関連項目
オブジェクト(概要)
ターゲットパス