function onUp(e:MouseEvent) {
などのeにはイベントオブジェクトが入っている。
| プロパティ |
情報の内容 |
| target |
イベントが起きたインスタンスへの参照 |
| type |
イベントの種類を表す文字列 |
| localX |
イベント発生位置のx(水平)座標 |
| localY |
イベント発生位置のy(垂直)座標 |
| ctrlKey |
[Ctrl]キーが押されているかどうかをtrue/falseで判定 |
| shiftKey |
[Shift] キーが押されているかどうかをtrue/falseで判定 |
message.text = e.target.name + "を押しました";
//マウスボタンを押した時に実行する関数
function onDown(e:MouseEvent) {
if (e.target==e.currentTarget) {
//イベント発生対象と,イベント通知対象(window)
//が等しければドラッグ開始
e.currentTarget.startDrag();
message.text = "windowをドラッグ開始";
//画面外までドラッグしたときにも関数を実行
e.currentTarget.addEventListener(MouseEvent.MOUSE_OUT,onUp);
}
}
//マウスボタンを離した時に実行する関数 eにはイベントオブジェクト
function onUp(e:MouseEvent) {
//targetの値によって処理を分岐
switch (e.target) {
case e.currentTarget.button1 :
message.text = "button1を押しましたね";
break;
case e.currentTarget.button2 :
message.text = "button2を押したみたいです";
break;
case e.currentTarget.button3 :
message.text = "この感触はbutton3を押した感触!!";
break;
case e.currentTarget :
//ドラッグ解除
e.currentTarget.stopDrag();
//イベント処理を外す
e.currentTarget.removeEventListener(MouseEvent.MOUSE_OUT,onUp);
message.text = "windowのドラッグ終了";
}
}
//イベントを関連付ける
window.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
window.addEventListener(MouseEvent.MOUSE_UP,onUp);
上のでも下のでもOK
//window上でマウスボタンを押した時に実行する関数
function window_onDown(e:MouseEvent) {
if (e.target==e.currentTarget) {
//イベント発生対象と,イベント通知対象(window)が
//等しければドラッグ開始
e.currentTarget.startDrag();
message.text = "windowをドラッグ開始";
//ボタンを離したときと,画面外までドラッグしたときに関数を実行
e.currentTarget.addEventListener(MouseEvent.MOUSE_UP,window_onUp);
e.currentTarget.addEventListener(MouseEvent.MOUSE_OUT,window_onUp);
}
}
//window上でマウスボタンを離した時に実行する関数
function window_onUp(e:MouseEvent) {
if (e.target==e.currentTarget) {
//ドラッグ解除
e.currentTarget.stopDrag();
//イベント処理を外す
e.currentTarget.removeEventListener(MouseEvent.MOUSE_UP,window_onUp);
e.currentTarget.removeEventListener(MouseEvent.MOUSE_OUT,window_onUp);
message.text = "windowのドラッグ終了";
}
}
//ボタン上をクリックしたときの処理
function button_onClick(e:MouseEvent){
message.text = e.target.name + "をクリックしました";
}
//イベントを関連付ける
window.addEventListener(MouseEvent.MOUSE_DOWN,window_onDown);
window.button1.addEventListener(MouseEvent.CLICK,button_onClick);
window.button2.addEventListener(MouseEvent.CLICK,button_onClick);
window.button3.addEventListener(MouseEvent.CLICK,button_onClick);
■stopPropagation();
window MCの中のbutton1をクリックした場合に、子供のイベントと同時に親も実行されてしまう。
そんなときにはstopPropagation()を使って、イベントフローを止める
//window上でマウスボタンを押した時に実行する関数
function window_onDown(e:MouseEvent) {
trace("ウィンドウ" + e.target.name + "を押しました");
}
//ボタン上をクリックしたときの処理
function button_onDown(e:MouseEvent){
trace("ボタン" + e.target.name + "を押しました");
//ここでイベントフローをストップ
e. stopPropagation();
}
//イベントを関連付ける
window.addEventListener(MouseEvent.MOUSE_DOWN,window_onDown);
window.button1.addEventListener(MouseEvent.MOUSE_DOWN,button_onDown);