cutmail's blog

write the code

ActionScript3.0でのイベント処理

最近またもお仕事でFlashをいじっているのですが、少し前からFlashCS4になり、
いつのまにかActionScript3.0に対応していました。

最新版がいいんじゃね?

ということで、3.0でコツコツ作り始めてみたのだけれど、ボタンをクリックできない・・。
というか、ボタンがボタンをして認識されてないんじゃ?

そうなんです。

ActionScript3.0からは、ボタンを押したときに処理するみたいなイベント処理の記述が変わっています。
具体的に、2.0は

ActionScript2.0

button.onRelease = function(){
    trace("hoge");
};

と書けるのに、3.0では

ActionScript3.0

function onClick(event:MouseEvent):void{
    trace("hoge");
}

button.buttonMode = true;
button.addEventListener(MouseEvent.CLICK, onClick);

と、書かなければいけません。

また、

button.buttonMode = true;

としているのは、ボタンとして認識させるためらしいです。
3.0ではあえてボタンということを指定しないとダメなんですね。

実際3.0の構文の方が他の言語に似ているかもですね。
Javaのイベント処理に似ている。

まぁ3.0になり、デザイナーのFlashへの壁が高くなったのは言うまでもないですね。
きっと3.0を開発した人はバリバリのプログラマー達なんだろーな。