関数へのパラメータの受け渡し

パラメータは "引数" とも呼ばれ、関数のコードの処理の対象となるエレメントです。本マニュアルでは、"パラメータ" と "引数" を同じ意味で使用します。関数にはパラメータ (値) を渡し、それらのパラメータを使用して関数の処理を実行させることができます。関数ブロック内 (関数内のステートメント) では、パラメータの値が使用されます。

パラメータは、必須の場合と省略できる場合があります。パラメータが複数ある関数については、一部のパラメータが必須で残りのパラメータが省略可能である場合もあります。関数に十分な数のパラメータを渡さないと、不足するパラメータ値は undefined に設定されます。これにより、SWF ファイルで予期しない結果が発生する可能性があります。

たとえば、次の myFunc() という関数は、パラメータ someText を取ります。

function myFunc(someText:String):Void {
    trace(someText);
}

パラメータを渡すことにより、関数の呼び出し時に値を渡すことができます。この値は、次のように [出力] パネルに出力されます。

myFunc("This is what traces");

関数で未定義の値をチェックして適切なデフォルト値を設定するようになっている場合を除き、関数の呼び出し時には、常に指定された個数のパラメータを渡す必要があります。渡した値は、関数の定義で指定されているパラメータに代入されます。パラメータが不足している場合、その値は undefined に設定されます。ActionScript コードの作成時には、パラメータを関数に渡すコードを多数記述することになります。

パラメータは 1 つの関数に複数個渡すこともできます。その方法は次のように簡単です。

var birthday:Date = new Date(1901, 2, 3);
trace(birthday);

各パラメータの間はカンマ記号で区切ります。ActionScript 言語の多くのビルトイン関数は、複数のパラメータを取ります。たとえば、MovieClip クラスの startDrag() メソッドは、lockCenterlefttopright、および bottom の 5 つのパラメータを取ります。

startDrag(lockCenter:Boolean, left:Number, top:Number, right:Number, bottom:Number):Void

関数にパラメータを渡すには :

  1. 新しい Flash ドキュメントを作成し、parameters.fla という名前で保存します。
  2. タイムラインのフレーム 1 に次のコードを追加します。
    function traceMe(yourMessage:String):Void {
        trace(yourMessage);
    }
    traceMe("How are you doing?");
    

    コードの最初の数行は、traceMe() というユーザー定義関数を作成します。この関数は、1 つのパラメータ yourMessage を取ります。コードの最後の行は、traceMe() 関数を呼び出し、ストリング値 "How are you doing?" を渡します。

  3. [制御]-[ムービープレビュー] を選択して Flash ドキュメントをテストします。

次の例では、関数に複数のパラメータを渡す方法を示します。

関数に複数のパラメータを渡すには :

  1. 新しい Flash ドキュメントを作成し、「functionTest.fla」という名前で保存します。
  2. メインタイムラインのフレーム 1 に次のコードを追加します。
    function getArea(width:Number, height:Number):Number {
         return width * height;
    }
    

    getArea() 関数は、widthheight の 2 つのパラメータを取ります。

  3. 関数の後に次のコードを入力します。
    var area:Number = getArea(10, 12);
    trace(area); // 120 
    

    getArea() 関数呼び出しで、width と height にそれぞれ 10 と 12 の値を割り当て、戻り値を area インスタンスに保存します。次に、area インスタンスに保存した値をトレース出力します。

  4. [制御]-[ムービープレビュー] を選択して SWF ファイルをテストします。

    [出力] パネルに 120 と表示されます。

    getArea() 関数のパラメータはローカル変数と同様に扱われます。つまり、関数が呼び出されている間は存在しますが、関数が終了すると消滅します。

次の例では、addNumbers() 関数に十分な数のパラメータを渡さない場合、ActionScript は値 NaN (非数) を返します。

可変数のパラメータを関数に渡すには :

  1. 新しい Flash ドキュメントを作成し、「functionTest2.fla」という名前で保存します。
  2. メインタイムラインのフレーム 1 に次のコードを追加します。
    function addNumbers(a:Number, b:Number, c:Number):Number {
        return (a + b + c);
    }
    trace(addNumbers(1, 4, 6)); // 11
    trace(addNumbers(1, 4)); // NaN (非数)、c は undefined
    trace(addNumbers(1, 4, 6, 8)); // 11
    

    addNumbers 関数に十分な数のパラメータを渡さないと、不足するパラメータにはデフォルト値として undefined が割り当てられます。渡すパラメータが多すぎると、余分なパラメータは無視されます。

  3. [制御]-[ムービープレビュー] を選択して Flash ドキュメントをテストします。

    表示される値は、11、NaN、11 です。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000759.html