すると、意外なことに気づきました。
というか、プログラマーさんたちにとっては当たり前のことなのかもしれませんが。。
ActionScript3.0においてボタンと連携したプログラムを書く場合、
stop_b.addEventListener(MouseEvent.CLICK,stop_m);なんて書いたりします。
function stop_m(evt){
stop();
}
時には
stop_b.addEventListener(MouseEvent.CLICK,stop_m);なんて書くこともありますね。
function stop_m(e:MouseEvent):void{
stop();
}
これで、どちらもしっかり動くわけです。
この違いを知りたいと生徒さんから質問があって調べてみると意外なことにきづいたわけです。
というのは、「どっちも一緒。ちゃんと書いているか書いていないかの違いだけ。」ということ。
まずは「e」について調べてみると以下の様な記事を見つけました。
□ 基礎 イベントオブジェクト1 - DS LAB.
僕がAS3を勉強しはじめたとき、書籍によってイベントオブジェクトがeやevt、event、eventObjectなどまちまちで、どれが正しいんだ!と困惑したことがありました。これはすごく単純なのですがどんな名前にしてもいいというのが回答になります。引数の名前は自分で勝手に決めてよいので、どんな名前でもちゃんと動作します。moguや、aaaaa、abcとかでも大丈夫です。つまり、慣習的に「e」とつけていただけでどんな文字にしても良いとのこと。
では、「:」以降の表記はなんなのか?
実は「:」は演算子です(+「プラス、足す」や-「マイナス、引く」などのこと。)
で、どんな演算子かというと。
「型注釈、変数、関数の引数、関数の戻り値にデータ型を指定。」とあります。
変数(へんすう)というのは任意の文字列で一時的に値を格納しておくためのものです。
上記の通りfunction内の括弧内に書かれる場合は関数の引数(ひきすう)となります。
引数(ひきすう)、戻り値(もどりち)に関しては以下の記事が分かりやすい。
□ 引数とは何ですか?難しいのでわかりません(>_<)! - Yahoo!知恵袋
ここに、「海水を真水に変える装置」があるとします。 この装置に海水を投入すると、真水が得られます。 この装置に投入する海水が引数にあたります。 海水を真水にする装置がプログラムです。 その結果出てきた真水が戻り値です。そのデータ型を「:」以降で指定しているわけです。
上記の場合はその「e」という引数はMouseEvent型のデータですよと言っているわけです。
これはちゃんと書いてあげたほうがいいのですが上記程度の簡単なプログラムであればなくても動いてしまうんですよねぇ。
もうちょっと詳しく知りたい方はこちらも読んでみてください。
□ 2.3 フレームアクションの関数定義とメソッド定義 (ActionScript3.0入門ノート)
とどのつまり、なくても問題ない。
だとしたらなるべく短くてシンプルな方がわかりやすくていいです。
ということで、今後は前者の書き方でやっていこうかなぁと思いました。
ただ、データにはそれぞれデータ型というものがあるということを頭に入れて置くことは必要でしょうね。