イベント処理
イベント処理の基本書式は下記
オブジェクト.addEventListener(イベント,イベントハンドラ関数名);
function イベントハンドラ関数名(変数){
処理
}
たとえば、btnという名のオブジェクトをクリックした際に、「テスト」というアラートを表示させる場合、下記のように記述します。
function sample1(evt){
trace("テスト");
}
また、定数を指定することで同様の処理をすることができます。
定数を使うメリットはエラー箇所の特定が容易になることだそうです。
function sample1(evt){
trace("テスト");
}
イベント処理の削除
イベント処理の削除の基本書式は下記
オブジェクト.removeEventListener(イベント,イベントハンドラ関数名);
function イベントハンドラ関数名(変数){
処理
}
たとえば、btn2という名のオブジェクトがクリックされた際、上記でbtnがクリックされた場合の処理を削除する場合
function sample2(evt){
btn.removeEventListener(MouseEvent.CLICK,sample1);
}
イベントの種類
- ユーザーイベント
- マウスイベント
- キーボードイベント
- システムイベント
マウスイベントの種類
イベント(文字列) | 定数 | 説明 |
---|---|---|
click | MouseEvent.CLICK | オブジェクト内でマウスボタンを押して押して離す |
doubleClick | MouseEvent.DOUBLE_CLICK | オブジェクト内でマウスボタンを連続で2回押して離す |
mouseDown | MouseEvent.MOUSE_DOWN | オブジェクト内でマウスボタンを押す |
mouseUp | MouseEvent.MOUSE_UP | オブジェクト内でマウスボタンを離す |
mouseMove | MouseEvent.MOUSE_MOVE | オブジェクト内でマウスカーソルを動かす |
rollOver | MouseEvent.ROLL_OVER | オブジェクト内にマウスカーソルが入る |
rollOut | MouseEvent.ROLL_OUT | オブジェクト内からマウスカーソルが出る |
mouseOver | MouseEvent.MOUSE_OVER | (rollOverを繊細にしたイメージ) |
mouseOut | MouseEvent.MOUSE_OUT | (rollOutを繊細にしたイメージ) |
- 注意
-
doubleClickイベントはデフォルトでは無効になっているので、使う際にはdoubleClickを有効にするスクリプトを記述します。
オブジェクト名.doubleClickEnabled = true;
キーボードイベントの種類
イベント(文字列) | 定数 | 説明 |
---|---|---|
keyDown | KeyboardEvent.KEY_DOWN | キーボードのキーを押す |
keyUp | KeyboardEvent.KEY_UP | キーボードのキーを離す |
システムイベントの種類
イベント(文字列) | 定数 | 説明 |
---|---|---|
addedToStage | Event.ADDED_TO_STAGE | オブジェクトがステージに表示される |
enterFrame | Event.ENTER_FRAME | フレームレートに合わせて継続的に発生 |
removedFromStage | Event.REMOVED_FROM_STAGE | オブジェクトがステージから削除される |
押されたキーの特定
プロパティ | 説明 |
---|---|
keyCode | キーを特定するためのキーコード値 |
charCode | 文字を特定するための文字コード値 |
altKey | altキーが押されているか(押されていればtrue、押されていなかったらfalse) ※Windows環境のみサポート |
ctrlKey | ctrlキーが押されているか(押されていればtrue、押されていなかったらfalse) |
shiftKey | shiftキーが押されているか(押されていればtrue、押されていなかったらfalse) |
keyLocation | 同じキーが複数ある場合にどのキーが押されたかを数値で表す |
- 注意
- キー操作行うコンテンツのムーb−プレビューで確認する際は、確認前に【制御】→【キーボードのショートカットを無効】にチェックを入れます。
これは、プレビューウィンドウのショートカットとして認識されてしまい、正しく確認できないことを防ぐためです。
- 文字コードを文字に変換
- 文字 = String.fromCharCode(文字コード)
システムイベント、enterFrameイベントとremovedFromStageイベント
enterFrameはそのactionが実行される限り、イベント処理を設定したオブジェクトがなくなってもイベントハンドラが実行され続けます。
オブジェクトがステージから消えたらremovedFromStageイベントでイベント処理を削除するようにすると作業の混乱を回避できます。
オブジェクト名.addListener(Event.REMOVED_FROM_STAGE,sample2);
function sample1(evt){
//処理
}
function sample2(evt){
オブジェクト名.removeEventListener(Event.ENTER_FRAME,sample1);
}