初心者のためのFlash ActionScript講座
Flash ActionScript Helper
Home Menu

最終更新日: 2003年8月8日

関数

関数とは

[ アクション ] パネルのメニュー項目の仕分けでは、Functionはオブジェクトとして扱われています。しかし、typeof 演算子で調べてみると(「データ型の取得」参照)、他のオブジェクトは「object」を返すのに、関数は「function」を返してきます。どうやら、内部的には、関数は「function型」として扱われているようです。
では、本題です。

特定の処理をする目的で用意された小さなプログラムのこと関数といいます。

具体例で見てみましょう。
[ アクション ] パネルの [ アクション ] - [ ムービーコントロール ] に、play という関数があります。 [ アクション ] に分類されていますが実際には関数です。このようにシステムによってあらかじめ用意された関数を、定義済み関数といいます。
play はムービークリップを再生する関数です。関数は、関数名の後ろに関数呼び出し演算子のカッコ( )を付けて呼び出します( play() 。カッコを付け忘れると、実行されませんので気をつけてください)。ユーザーにはどんなコードが記述されているのか分からないブラックボックスですが、 関数名 play にカッコを付けて呼び出すと、ムービークリップを再生することができます。

関数の呼び出し方


引数

関数には、さまざまな形を持ったものがあります。
まず、呼び出しの際に、関数に値を渡すものと渡さないものがあります。この関数に渡す値を引数(ひきすう)といいます。
たとえば、前述の play は引数を必要としませんが、指定したフレーム番号やラベルに移動する関数 gotoAndPlay はフレーム番号やラベル名を引数として関数に渡さなければなりません。
引数は関数呼び出しのカッコ内に記述します。引数が複数の関数も存在します。この場合は、引数をカンマで区切って記述します。
なお、引数の数や各引数のデータ型は、関数によって決められています。『ActionScript辞書』などを参考にして、正しい引数を渡してください。

引数


戻り値

また、関数には値を返すものがあります。関数が返す値を戻り値または返り値といいます。
戻り値を返す関数は値を生成するので、式のなかで利用したり、関数だけで式を構成することができます。
なお、スクリプト内で戻り値を再利用するためには、変数に代入する必要があります。

戻り値


グローバル関数とメソッド

[ アクション ] パネルの [ 関数 ] メニュー項目に仕分けされた関数は右下のとおりです。これらの関数はどのオブジェクトにも所属しないグローバル関数で、どのタイムラインに記述する場合でも、ターゲットパス(「ターゲットパス」を参照)を指定することなく、関数名だけで呼び出すことができます。

[ アクション ] パネルの [ 関数 ] メニュー項目

[ アクションパネル ] の [ 関数 ] メニュー項目
 
[ 関数 ] メニュー項目内の関数
  • escape
  • eval
  • getProperty
  • getTimer
  • getVersion
  • targetPath
  • unescape
    ●数学関数
  • isFinite
  • isNaN
  • parseFloat
  • parseInt
    ●変換関数
  • Array
  • Boolean
  • Number
  • Object
  • String
グローバル関数の呼び出し

これに対し、各オブジェクト専用の関数も存在します。例えば、Booleanオブジェクトには、toStringvalueOf という2つの定義済み関数が用意されています。
このような各オブジェクト専用の関数メソッドといいます。
メソッドは、各オブジェクトに所属する関数なので、ターゲットパスを指定し、オブジェクトを特定して呼び出さなければなりません。また各オブジェクト専用の関数ですので、タイプの異なるオブジェクトを指定しても呼び出すことはできません。

Booleanオブジェクトの2つのメソッド

メソッド
 
メソッドの呼び出し

なお、このページではわかりやすくするために、アクションの play 、gotoAndPlay、loadMovie 関数で説明しましたが、これらは、過去のバージョンで使われていた名残りです。現バージョンでは、同名のムービークリップメソッドが用意されています。実際に使用する場合は、メソッドを使うようにしてください。オブジェクトを中心に考える。それがオブジェクト指向のプログラミングです。
ターゲットパスが指定されたグローバル関数は、Flashでは自動的にメソッドとして扱われます。グローバル関数とメソッドで、引数の異なるものがありますので注意が必要です。


ユーザー定義関数(カスタム関数)

また、Flashではユーザー自身がグローバル関数やメソッドを作成し、ムービー内で利用することができます。これらの関数をユーザー定義関数(またはカスタム関数。メソッドの場合はカスタムメソッドといいます。シンボル同様、再利用可能なスクリプトの部品と考えることができます。ユーザー定義関数については、別のページで解説します。


関数の見分け方

前述のとおり、[ アクション ] パネルのメニューには問題が多く、ActionScriptでプログラムをはじめた人には、どれが関数なのか分かりづらいと思います。すべての関数を把握するには、『ActionScript辞書』を読む以外に方法はありませんが、ここで簡単に関数か否かを判断する方法を紹介しましょう。

[ アクション ] パネルのメニューで項目をダブルクリックすると、右の [ スクリプトペイン ] (ウィンドウ)にスクリプトが挿入されます。このとき、後ろにカッコ( )が挿入されるものが関数です(引数つきの関数はコードヒントも表示されます)。ただし、カッコの後ろに { } が挿入されるものは関数ではありません。もちろんカッコが挿入されないものも関数ではありません。

関数の見分け方

・関連項目

データ型の取得
オブジェクト(概要)
ターゲットパス
ユーザー定義関数(カスタム関数)

(C)2000-2004 Ginga Baba. All rights reserved. お問い合わせ先:ginga@nifty.com
ページTOPへ
Home Menu