マウスの左ボタンが押されたか調べる方法を説明します。
調べる方法は4つあります。
イベント定数 | 内容 |
---|---|
MouseEvent.CLICK | 左ボタンをクリックした |
MouseEvent.DOUBLE_CLICK | 左ボタンをダブルクリックした |
MouseEvent.MOUSE_DOWN | 左ボタンを押した |
MouseEvent.MOUSE_UP | 左ボタンを離した |
左ボタンがクリックされたかを調べるにはMouseEvent.CLICKイベントを使います。
画面上のどこをクリックしても、赤い四角は45度ずつ回転します。
青い四角の上でクリックした時のみ、赤と青の両方の四角が回転します。
プログラムは次のようになっています。
左ボタンがクリックされたかを調べるMouseEvent.CLICKイベントを登録することで
クリックされた時に関数が実行されます。
登録の方法は次のようになっています。
赤い四角は、ステージ(stage)に対してイベント登録しているので
画面上のどこをクリックしてもstage_click関数は呼び出されます。
それに対し青い四角は、インスタンス名 ao_mc に対してイベント登録されているので
青い四角の上でクリックされた時のみao_click関数が呼び出されます。
左ボタンがダブルクリックされたかを調べるにはMouseEvent.DOUBLE_CLICKイベントを
使います。
画面上のどこをダブルクリックしても赤い四角は45度回転します。
(正確には他のオブジェクトが配置されていない部分)
青い四角の上でダブルクリックすると、両方の四角が回転します。
プログラムは次のようになっています。
左ボタンをダブルクリックしたMouseEvent.DOUBLE_CLICKイベントを登録し
さらにdoubleClickEnabledプロパティを true(有効) にすることで
ダブルクリックされた時に関数が実行されます。
3と4行目を見て下さい。
赤い四角は、ステージ(stage)に対してイベント登録しているので
画面上(他のオブジェクトが配置されていない)をダブルクリックするとstage_click関数は
呼び出されます。
11と12行目を見て下さい。
青い四角は、インスタンス名ao_mcに対してイベント登録されているので
青い四角の上でダブルクリックした時のみao_click関数は呼び出されます。
なお、赤い四角の上でダブルクリックしても回転しません。
赤い四角に対しdoubleClickEnabledプロパティが有効になっていない為で
stage_click関数が呼ばれないからです。
テキストメッセージ上でダブルクリックしても回転しない理由も同じです。
逆に、青い四角をダブルクリックした時に、赤い四角も回転するのは
青い四角(ao_mc) のdoubleClickEnabledプロパティが有効になっているためで
ステージ(stage)に対して登録されたイベントも一緒に動いてしまうからです。
赤い四角をダブルクリックした時に、赤い四角を回転させたいのなら
赤い四角のインスタンス名aka_mcのdoubleClickEnabledを有効にします。
5行目に
aka_mc.doubleClickEnabled = true;
を入れることになります。
左ボタンが押されたかを調べるにはMouseEvent.MOUSE_DOWNイベントを使います。
左ボタンを、画面上のどこで押しても赤い四角は拡大します。
青い四角の上で左ボタンを押すと、両方の四角が拡大します。
プログラムは次のようになっています。
注意:15行目までが左ボタンを押した時の処理になります。
左ボタンを押したMouseEvent.MOUSE_DOWNイベントを登録することで
左ボタンが押された時に関数が実行されます。
赤と青の四角で動きが異なるのは、イベントの登録対象の違いにあります。
赤い四角は、ステージ(stage)に対してイベント登録しているので
画面上のどこをクリックしてもstage_down関数は呼び出されます。
青い四角は、インスタンス名ao_mcに対してイベント登録されているので
青い四角の上でクリックされた時のみao_down関数は呼び出されます。
左ボタンが離されたかを調べるにはMouseEvent.MOUSE_UPイベントを使います。
左ボタンを画面上のどこで押しても赤い四角は拡大し、ボタンを離すと元に戻ります。
青い四角の上で左ボタンを押すと両方の四角が拡大し、ボタンを離すと元に戻ります。
プログラムは次のようになっています。
注意:17行目からが左ボタンを離した時の処理になります。
左ボタンを離したMouseEvent.MOUSE_UPイベントを登録することで
左ボタンが離された時に関数が実行されます。
赤と青の四角で動きが異なるのは、イベントの登録対象の違いにあります。
赤い四角は、ステージ(stage)に対してイベント登録しているので
画面上のどこで離してもstage_up関数は呼び出されます。
青い四角は、インスタンス名ao_mcに対してイベント登録されているので
青い四角の上で離した時のみao_up関数は呼び出されます。
このイベントを使う時には注意が必要です。
サンプルプログラムにて
青い四角の上で左ボタンを押して
そのままマウスカーソルを青い四角の外へ移動してからボタンを離す
という操作をしてみて下さい。
「青い四角の大きさが元に戻らない」と思います。
これはインスタンス名ao_mcに対してイベントを登録したため
ao_mc(青い四角)の上で操作しないと関数が実行されないからです。
この性質を認識した上で使うようにしましょう。
[ マウスやキーボードの操作について ] に戻る