Platform: All
Version: Flash MX 2004 and above
シンタックス
return [expression]
引数
expression:Object - 関数の値として評価して返す式。式の値は、ストリングや数値、ブール(論理)値などのプリミティブ値のほか、配列(Array)その他のオブジェクトなど任意のデータ型が指定できます。この引数は省略可能です。
説明
関数から返される値を指定します。returnステートメントは式expressionを評価したうえで、その結果をステートメントが実行された関数の値として返します[*1]。
returnステートメントは、関数の実行をそこで中断して、制御を直ちに関数の呼出し元に戻します。return文の後にまだ処理されていない関数本体のステートメントがあっても、その処理は行われません。
returnステートメントは、式を指定しないで用いることができます。また、関数本体にreturnステートメントを、記述しなくても問題はありません。式を指定しないreturnステートメントが実行された場合や、returnステートメントがないまま関数本体の処理が終了したとき、関数の戻り値は未定義値undefinedとして扱われます。
なお、関数本体以外にreturnステートメントを記述することはできません。
[*1] returnステートメントで複数の値を返すことはできません。カンマ(,)区切りで、複数の値を指定すると最後の値だけが返されます。たとえば、つぎの例では変数cの値が返されます。
return a, b, c;
関数の戻り値として複数の値を返したい場合は、returnステートメントの後に配列(Array)またはObjectインスタンスを指定します。
return [a, b, c]; // 配列を返す
|
例
つぎのスクリプト(スクリプト001)をMovieClipシンボルの第1フレームアクションとして記述すると、インスタンスはマウスポインタの方向に回転します(図001。MovieClipインスタンスの向きは、X軸正方向つまり右向きを起点とします)。関数xRotate()およびxRadiansToDegrees()の本体内で、returnステートメントを用いています。
図001■MovieClipがマウスポインタの方向に回転する
スクリプト001■MovieClipをマウスポインタの方向に回転させる
// MovieClip: _root.my_mc
// 第1フレームアクション
// ActionScript 2.0使用
var nSensitivity:Number = 0.2;
function onEnterFrame():Void {
var nRadian:Number = Math.atan2(_ymouse, _xmouse);
xRotate(nRadian*nSensitivity);
}
function xRotate(nRadian:Number):Void {
if (isNaN(nRadian)) return; // 値は返さずに実行を終了
var nDegree:Number = xRadiansToDegrees(nRadian);
_rotation += nDegree;
}
function xRadiansToDegrees(nRadian:Number):Number {
var nDegree:Number = nRadian/Math.PI*180;
return nDegree; // 度数に変換した角度を返す
}
|
関数xRotate()は、引数として角度をラジアン値で受取ると、その指定された角度だけイージングのかかったアニメーションで回転します。関数本体の最初のifステートメントで、isNaN()関数により引数がNaNと評価されると[*2]、returnステートメントにより関数の実行が中断されます。returnに式が指定されていませんので、戻り値を調べればundefinedになります。
関数xRadiansToDegrees()は、ラジアン値の角度を引数として受取ると、その値を度数に変換します。そして、その度数値をreturnステートメントにより、関数の値として返します。
[*2] 引数はNumber型で指定されていますので、実際にはundefinedとNaNがif条件でtrueと評価されることになります。
もっとも、スクリプト001の処理において、実際に関数xRotate()にこれらの値が引数として渡される可能性はありません。このifステートメントは、関数xRotate()が汎用的に用いられる場合に備えた例外的な処理といえます。
|
Player
ActionScript 1.0/Flash Player 5以降。
_____
作成者: 野中文雄
作成日: 2006年5月21日