電子書籍の厳選無料作品が豊富!

現在、webの学校でflashを勉強しているのですが、
ActionScriptで、関数はそもそも何なのかということがわかりません。
関数とはなんですか?
バカですいませんが、ご教授お願いします。
あとは何かわかりやすいurlはあったら教えてください。

A 回答 (1件)

あえて聞かれると「関数って何だろう?」と思ってしまいますが,


普通に言うと,
ActionScript に限らず,プログラム言語の 関数 とは,だいたい下記のようなことです。

関数 【function】
http://e-words.jp/w/E996A2E695B0.html

> 引数と呼ばれるデータを受け取り、
 (※私注 受け取らない場合もあるけど)
> 定められた通りの処理を実行して結果を返す一連の命令群。
> 多くのプログラミング言語では、
> 関数がプログラムを構成する要素となっている。
> 多くの言語や処理系では、
> 開発者の負担を軽減するため、
> よく使う機能が関数としてあらかじめ用意されている。


ActionScriptの場合,
いちばんわかりやすい関数が,trace() 関数だと思います。
JavaScript で言うところの,Alert() 関数 に近いものに当たる物です。


たとえば,
Flash を起動して,フレーム1 のフレームアクションとして,

-------------------------------------
trace("trace関数が実行されました!");
-------------------------------------

と書いて,「制御」→「ムービープレビュー」すると,
「trace関数が実行されました!」 と,出力窓に表示されます。
"trace関数が実行されました!" が trace を実行させるときの引数です。

「trace関数が実行されました!」
を出力するためには,
本当はもっと多くのコマンドやプログラムが実行されて,違う引数が伝達されているはずです。
しかし,Flashユーザーとしては trace("trace関数が実行されました!"); を書くだけで,
「trace関数が実行されました!」 が出力窓に表示されます。

そういう本当は長いプログラムをすべて書いて実行させることはほとんど不可能です。
それを簡略化するために,その動作を一々プログラミングしなくて済むようにしたものが関数です。


この関数ですが,
trace()関数 のようにあらかじめ与えられた関数ではなく,
ActionScript なら ActionScript 内で新たに独自に作成することもできます。
それを可能にするのが,たとえば function文 です。


Flash を起動して,フレーム1 のフレームアクションとして,

------------------------------------------
// ユーザ定義関数 myFunc を定義(引数 a b c)
function myFunc(a, b, c) {
trace("私は"+a+"に住んでいます。");
trace("年齢は"+b+"歳です。");
trace("職業は"+c+"です。");
}
// 上で定義した myFunc を実行
myFunc("日本", 19, "学生");
------------------------------------------

と書いて,「制御」→「ムービープレビュー」すると,

 私は日本に住んでいます。
 年齢は19歳です。
 職業は学生です。

と,出力窓に表示されます。

myFunc("日本", 19, "学生");
この関数実行部分を,
myFunc("アメリカ合衆国", 36, "サラリーマン");
と変更すれば,

 私はアメリカ合衆国に住んでいます。
 年齢は36歳です。
 職業はサラリーマンです。

と,出力窓に表示されます。

1つの定型文さえ用意しておけば,
myFunc("○○", △△, "□□");
これだけで,1つの文章が作成されるわけです。
すごく楽ですよね。
もっと複雑な計算を myFunc の中でさせると,さらに便利になります。

こういうものが関数です。

関数とよく似たものにメソッドがあります。
関数やメソッドついてのさらに詳細は,次のURLを参考にしてみてください。

関数とは
http://homepage3.nifty.com/ginga-b/MX/function.h …

関数とメソッドについて
http://livedocs.adobe.com/flash/8_jp/main/000012 …
    • good
    • 0
この回答へのお礼

死ぬほどわかりやすいです。
ありがとうございます!!!

お礼日時:2007/11/05 21:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!