Flashプログラム:function()って?

ファンクション文は、自分で関数を定義することのできる構文。
function 自分で決めた名前(引数) {
 実行文;
 return 戻り値(あれば);
}

分かりやすい解説はこちらのサイトで
function文 - FLASHアクションスクリプト入門編
とりあえずfunctionがどんなものかは、分かりました。
しかしfunctionが使われる場面で、以下のようなものが・・
***.onMouseMove = function() {
   実行文;
};

この場面でのファンクションは何のためにあるんだろう??
名前も引数もないのにどういう意味があるんだろうかと疑問に思いました
調べてみたところ、このfunction()というのは関数リテラルと言い、名前のない関数ことらしい。一時的に関数を使用する場合や、コード内で関数の代わりに式を使用する可能性がある場所で関数を使用する場合に使うそうな。
ちなみに、ActionScript 3.0ではインスタンスにスクリプトを記述できなくなるためonClipEvent()イベントハンドラアクションが使えなくなるらしい。
例:
ball.onEnterFrame = function () {
this._x += 1;
};

イベントハンドラメソッドの設定は、別途定義した'function'名を代入することもできるので、
ball.onEnterFrame = ball_move;
function ball_move() {
this._x += 1;
};

こんなふうにも書ける。
■参考リンク
名前のない関数(匿名関数/関数リテラル)
関数リテラルについて
空のイベントハンドラメソッドは負荷がかかるか?
イベントメソッドについて
onRelease (MovieClip.onRelease ハンドラ)
function ステートメント
ActionScript 1.0のフレームアクション
032 ランダムに犬の足跡を表示する
マウスが止まった時を知るには?
たくさんのonMovieClip(enterFrame)は負荷になるか?
Flash MXにおけるスコープチェーンとメモリの浪費

19. 12月 2009 von memo-log
カテゴリ: プログラミング |

コメント

コメント投稿

Required fields are marked *