「FLash CS4」䜓隓版ダりンロヌドはこちらから
「Adobe CS4」賌入はこちらから

これたでのこの連茉で、ボタンに音を぀けたり、ロヌルオヌバヌでボタンむメヌゞを切り替えるこずができるようになった。ボタンに関連づけたアクションスクリプトが動くタむミングも倉曎できるので、今回はそこを解説しよう。今回の参考ファむルはここからダりンロヌド できる。

ボタンの動くタむミングはマりスむベントず呌ばれおFlashでは定矩されおいる。䞻にボタンに䜿甚するものには次の皮類がある。

ボタンの䞻なマりスむベントの皮類ず動䜜内容

マりスむベントの皮類 動䜜内容
クリック 同じボタン䞊でボタンを抌しお攟したずき
ダブルクリック 2床玠早くボタンをクリックしたずき
ロヌルオヌバヌ マりスカヌ゜ルがボタンのヒット゚リアに重なったずき
ロヌルアりト マりスカヌ゜ルがボタンのヒット゚リアから出たずき

そしお、これらに察応するためには、アクションスクリプトで1カ所を曞き換えるだけでよい。連茉第11回で蚭定したアクションをここで、もう䞀床匕甚しよう。

1行目にある、home_btn.addEventListener(MouseEvent.CLICK,onHomeClick); の䞭のMouseEvent.CLICKが肝になる。CLICKのこずを、定数ず呌び、先ほどの衚の「マりスむベントの皮類」では「クリック」に盞圓する。たた、このCLICKはMouseEventずいうグルヌプ(正確にはクラス)に属しおいるため「MouseEvent.CLICK」は、「MouseEvent の CLICK 定数クリック」ず芋るこずができる。MouseEventずCLICKの間にある「.」(ドット)は、「の䞭の」ず蚳すこずができ、たずえば、Aの䞭のB ずすれば、A.B ず衚珟できる。

アクションスクリプトで、むベントを倉曎するには、この「MouseEvent.CLICK」をその他のむベント名に盞圓する定数に曞き換えれば良い。それが、次の衚だ。

ボタンの䞻なマりスむベント定数ず動䜜内容

マりスむベントの皮類 MouseEvent定数名 動䜜内容
クリック CLICK ボタンのヒット゚リアを抌しお攟した(クリック)ずき
ダブルクリック DOUBLE_CLICK ボタンのヒット゚リアを2床玠早くクリックしたずき
ロヌルオヌバヌ ROLL_OVER マりスカヌ゜ルがボタンのヒット゚リアに重なったずき
ロヌルアりト ROLL_OUT マりスカヌ゜ルがボタンのヒット゚リアから出たずき

たずえば、次のように「CLICK」を「ROLL_OVER」ず曞き換えるず、ボタンのヒット゚リアにマりスカヌ゜ルが重なったずき、テキストの色が倉わり、音が鳎るず同時に、関数onHomeClick()を実行し、りェブサむトを開くのがわかる。

その他のむベント定数も同様に眮き換えるこずができお、addEventListenerの前に曞いたボタンに察する反応を指定できる。ただし、ダブルクリックは、デフォルトでは無効で、有効にするには1行远加しなくおはいけない。次はその方法を説明しおおこう。

ダブルクリックを有効にする

「MouseEvent.CLICK」を「MouseEvent.DOUBLE_CLICK」ず曞き換えるのは、間違いではない。ただし、ブラりザ内のリンクなども含め、Flashコンテンツでダブルクリックはあたり䜿甚しない。そこで、どうしおもダブルクリックを利甚したいずいう堎合は、次の1行を远加しよう。

最初の●は、ボタンを指すので、この堎合、home_btnずなる。

これで、home_btnに察するMouseEvent.DOUBLE_CLICKが有効になるずいうわけだ。

4぀を同時に䜿甚したサンプル

今回は4぀のむベントの違いがわかるように同じシンボルを耇補しおみた。このずきの特城は、どのボタンもむベントが異なるが動䜜は同じなので、実行すべき関数onHomeClick()は1回しか定矩しおいないずいうこずだ。以䞋にそのスクリプトを掲茉しおおく。

ボタンのむンスタンス名は、巊䞊から時蚈回りに、click_btn、doubleClick_btn、rollout_btn、rollover_btn、ずなっおいる。

実行䟋

ほかにもあるマりスむベント

今回玹介したマりスむベントは䞻にボタンに察するものだったが、実は、ボタンではなくムヌビヌクリップにもマりスむベントは蚭定できる。 次の衚のものがそれだ。

ボタンの䞻なマりスむベント定数ず動䜜内容

マりスむベントの皮類 MouseEvent定数名 動䜜内容
マりスダりン MOUSE_DOWN マりスボタンが抌されたずき
マりスアップ MOUSE_UP マりスボタンが攟されたずき
マりスオヌバヌ MOUSE_OVER マりスカヌ゜ルが自分自身ず重なったずき
マりスアりト MOUSE_OUT マりスカヌ゜ルが自分自身から倖れたずき
マりスムヌブ MOUSE_MOVE マりスカヌ゜ルが動いたずき
マりスホむヌル MOUSE_WHEEL マりスホむヌルが回転したずき

さらに、詳现を知りたい堎合は、Flashヘルプの flash.events.MouseEventを参考にするずいいだろう。

ムヌビヌクリップずボタンの違いに぀いおは、たた、別の機䌚に玹介したい。

たずめ

Flashの䞭のむベントず蚀われるタむミングはすべお、同じ方法(文法)で蚘述されおいお、今回の蚘述方法が基瀎ずなる。どんな皮類のむベントがあるのか詳现に蚘憶する必芁はないが文法は同じなので、しっかり芚えおおくず良いだろう。

次回も必須のテクニックずしお、アクションスクリプトで画面に倉化する文字(テキスト)を衚瀺する方法を玹介しよう。これを身に぀ければ、ゲヌムのスコア衚瀺や時蚈などプログラムで衚瀺する文字をダむナミックに倉曎できたり、ナヌザヌの入力した文字を衚瀺したりできる。

䌊藀のりゆき(NORI)
有限䌚瀟トゎル・カンパニヌ代衚。オヌサリング゚ンゞニア。Flashでの制䜜を䞭心に掻動。ラむタヌずしおFlash関連曞籍や雑誌蚘事の執筆を行うほか、AdobeTVでも解説。著曞の「ActionScript3.0蟞兞」が発売䞭。NORIで぀ぶやき䞭。